La soumission d'un formulaire à l'aide de <input type =“button”>
Je vais avoir un peu de mal avec cela et ne peut pas voir ce que je fais mal. J'ai cette forme:
<div class="user">
<form name="userDetails" id="userDetails" method="post" >
<input type="text" name="firstName" id="firstName" class="firstName" placeholder="first name " />
<input type="text" name="lastName" id="lastName" class="lastName" placeholder="last name " />
<input type="text" name="address" id="address" class="address" placeholder="First line of Address " />
<input type="text" name="postcode" id="postcode" class="postcode" placeholder="Postcode " />
<input type="text" name="email" id="email" class="email" placeholder="E-Mail " />
<input type="text" name="phone" id="phone" class="phone" placeholder="Phone " />
<input type="button" id="submitDetails" class="submitDetails" name="submitDetails" value="Submit Your Details" />
</form>
</div>
Ainsi, lorsque l'utilisateur clique sur le bouton, il doit soumettre le formulaire à celle de PHP pour agir sur la forme (je sais que le sql n'est pas une déclaration préparée à l'avance et est vulnérable aux injections, mais ce sera fait au plus tard):
<div class="overallSummary">
<?php
$fName = $_POST['firstName'];
$lName = $_POST['lastName'];
$address = $_POST['address'];
$pc = $_POST['postcode'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$userSQL = "INSERT INTO user (forename, surname, address, postcode, email, phone) VALUES ('$fName', '$lName', '$address', '$pc', '$email', '$phone')";
$result = mysql_query($userSQL) or die(mysql_error());
?>
</div>
Cependant lorsque je vérifie mes tables, aucune information n'est inséré dans la base de données. En gardant à l'esprit ce code est tous dans le même document, c'est pourquoi je n'ai pas utilisé d'action="fichier.tapez" dans le formulaire de déclaration. C'est parce que je ne suis pas sûr de savoir si l'ajax est approprié ici.
Toute aide est très appréciée, merci.
MODIFIER
Ce que je pourrais faire est d'utiliser ajax avec jQuery pour écouter l'événement click du bouton:
$(document).ready(function() {
$(".submitDetails").click(function(e) {
e.preventDefault();
var userData = $("#?").val();
var dataToSend = '?=' + eNameData;
$.ajax({
url: "userDetailTest.php",
type: "POST",
data: dataToSend,
cache: false,
success: function(php_output)
{
$(".overallSummary").html(php_output);
}
});
});
});
L'idée ici est d'utiliser cet ajax lorsque le bouton est cliqué et d'appeler la fonction ajax mais je ne suis pas sûr de ce que pour mettre l'ID de la variable 'userData' et ce qu'il faut ajouter dans le " dataToSend variable pour le faire fonctionner avec mon formulaire.
J'ai précisé dans ma question.
OriginalL'auteur Tim Johnstone | 2012-03-14
Vous devez vous connecter pour publier un commentaire.
Fait de soumettre le formulaire, votre
input
type doit êtresubmit
, pasbutton
.À l'aide d'un
button
balise serait aussi travailler.Sauf si vous avez un peu de code javascript c'est le déclenchement de la soumettre le formulaire.
L'attribut action est également nécessaire que par le cahier des charges, mais même sans cela, la plupart des navigateurs supposent l'URL de l'action à la page en cours.
Modifier: Si vous souhaitez envoyer les données du formulaire sans avoir à recharger la page, vous ont à utiliser ajax, ou de mettre l'ensemble sous forme d'un
iframe
. (S'il vous plaît, de le faire avec ajax au lieu de cela).Sinon cliquant sur le
input[type=button]
ne sera pas vraiment faire quoi que ce soit.Les données de l'utilisateur avec les données réelles de votre formulaire, vous pouvez capturer en utilisant:
Puis à l'aide d'Ajax est , pas une option. (Ouais, les iframes existe encore, je sais).
Merci, j'ai pensé que cela pourrait être le cas. Êtes-vous en mesure de me dire alors comment passer de la saisie de données à l'aide de la fonction ajax?
OriginalL'auteur Nathan
Il y a des façons:
Suffit d'utiliser ci-dessous si vous ne voulez pas actualiser la page:
Essayez pas d'utiliser le code ci-dessous pour soumettre le formulaire avec jquery:
Liens ci-dessous vous aidera beaucoup:
http://www.ryancoughlin.com/2008/11/04/use-jquery-to-submit-form/
Ouai Merci. Maintenant corrigé
OriginalL'auteur
Ajouter une action sur la forme et l'utilisation soumettre.
Aussi afin de faciliter le débogage, vous pourriez juste l'écho d'abord les champs avant de les enregistrer dans la bd. De cette façon, vous pouvez jouer avec les données sans la hazzle de passe de l'administrateur de base de données de la table.
Edit: Puisque vous voulez vraiment un bouton puis ce ajax pourrait être utile
Vous pouvez essayer celui que j'ai mis sur mon montage. Notez que j'ai utilisé le "id" de chaque entrée de texte comme le nom des données.
Aussi Tezzs' réponse semble être de mieux en passant les données de chaîne json
OriginalL'auteur adedoy
En gros, vous avez répondu à votre propre question. Vous avez besoin de mettre de l'action dans le formulaire pointant vers le script qui traite le formulaire. Commencer avec ça, et si vous décidez d'utiliser AJAX, plus tard, vous pouvez toujours modifier un peu le code pour le faire.
OriginalL'auteur Vincent Ramdhanie
Vous avez encore besoin d'une action. Si le PHP est sur la même page, vous pouvez utiliser quelque chose comme:
OriginalL'auteur Paul Dessert
Les trois réponses précédentes doivent être combinés pour donner une réponse que vous avez en fait deux choses qui manquent réalisable à partir d'un formulaire HTML, d'action et de soumettre:
Ok, eh bien, vous ne lui demandez pas "pourquoi ne pas soumettre le formulaire" mais "comment puis-je l'envoyer à l'aide d'Ajax" puis. Comme quelqu'un l'a mentionné - vous besoin de l'ID de l'ensemble de la forme - #userDetails Voir @Nathan réponse - cela devrait le faire.
OriginalL'auteur fred2