jQuery post une forme sérialisée l'insertion dans mysql via php?
Je suis en train de poster une forme sérialisée pour un sumbit.php fichier, à son tour, fera ensuite l'insérer dans une base de données MySQL; toutefois, la dernière entrée qui est caché, n'est pas s'insérer dans la base de données, si le reste sont.
Voici quelques extrait des exemples de ce que j'ai à ce jour qui ne fonctionne pas:
HTML
<form method="post" action="" >
<label for="name" class="overlay"><span>Name...</span></label>
<input class="input-text" type="text" name="name" id="name" />
<label for="email" class="overlay"><span>Email...</span></label>
<input type="text" class="input-text" name="email" id="email"/>
<label for="website" class="overlay"><span>Website...</span></label>
<input type="text" class="input-text" name="website" id="website"/>
<label id="body-label" for="body" class="overlay"><span>Comment it up...</span></label>
<textarea class="input-text" name="body" id="body" cols="20" rows="5"></textarea>
<input type="hidden" name="parentid" id="parentid" value="0" />
<input type="submit" value="Comment" name="submit" id="comment-submit" />
</span>
</form>
Javascript
$('form.').submit(function(event) {
$.post('submit.php',$(this).serialize(),function(msg){
//form inputs consist of 5 values total: name, email, website, text, and a hidden input that has the value of an integer
}
});
PHP (submit.php)
$arr = array();
mysql_query(" INSERT INTO comments(name,email,website,body,parentid)
VALUES (
'".$arr['name']."',
'".$arr['email']."',
'".$arr['website']."',
'".$arr['body']."',
'".$arr['parentid']."'
)");
- Il y a des commentaires sur le
serialize()
page de doc qui semblent indiquer d'autres sont à avoir des problèmes avec la sérialisation des champs cachés ainsi: api.jquery.com/serialize - Espérons que peu de Bobby Tables ne vient pas à visiter - xkcd.com/327
Vous devez vous connecter pour publier un commentaire.
Ok, voici le code de travail. Il y avait quelques erreurs (par exemple. unclosed fonction des croisillons sur le post, ouvrez les balises span, aucun POSTE, var dans votre PHP etc.)
HTML (assurez-vous qu'il est une forme d'ACTION, de sorte que si les gens n'ont pas de js, vous pouvez toujours utiliser le formulaire)
Javascript
PHP
$arr = $_POST;
fait. Je n'étais pas la saisir au bon endroit. Merci Josh!Essayez d'ajouter manuellement le champ caché. Que l'Ambre a souligné, semble être un problème avec le champ caché.. pourrait être un bug dans une ancienne version jquery, peut-être, assurez-vous que vous avez les plus récents en premier.
Sinon, peut-être essayer d'ajouter le champ caché...?
Votre script devrait fonctionner correctement. Veuillez vérifier parentid au backend s'il est null ou 0 ?? vous pouvez utiliser
Puis vérifier le parentid champ de la table des commentaires si elle accepte de 0 ou la valeur null ou pas et de vérifier votre clé étrangère est définie dans une manière que vous méritez.
Grâce
parentid
int(11) not NULL DEFAULT '0'print_r($_POST)
vous donner?$_POST
tableau de$arr
. Pouvez-vous poster plus de votre code PHP?foreach($data as $k=>$v){$arr[$k]=mysql_real_escape_string($v);}
Puisif($sanitized){//mysql_query insert statement}
$_POST
il doit y avoir quelque chose de mal. Vérifiez votre code étape par étape.Lorsque vous sérialiser un formulaire, les données sont délimitées par des esperluettes (&)
Dans votre code PHP que vous avez à exploser sur les esperluettes (&puis sautez à nouveau pour chacun dans ce nouveau tableau sur le signe=.
Exemple
Alors vous aurez PHP les variables comme $nom, $email, $adresse, etc tout ce que vous avez nommé vos entrées sur le formulaire.
data
) avec les données sérialisées. Ce n'est pas correct. Et l'OP dit déjà qu'il fonctionne pour tous, mais le champ caché.