-1
votes

Forme Ajax JQuery Soumettre

Bonjour, je suis en train d'exécuter un formulaire à l'aide d'Ajax Soumettre les fonctions en utilisant php et js ci-dessous est mon code

soumettre.php strong> p> xxx pré>

form.js em> stry>

<form method="POST" action="submit.php" class="data">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<button name="add_data" class="btn btn-label-success btn-sm mg-y-5"><i class="fa fa-link"></i>
<button name="update_data" value="update" class="btn btn-label-warning btn-sm mg-y-5"><i class="fa fa-link"></i> Update</button>
</form>


7 commentaires

Vérifiez le résultat de console.log (données) avant ajax . Est-ce correct? Ensuite, vérifiez print_r ($ _ post); dans php.


Le résultat est comme celui-ci `` `add_data:" "update_data:" "Id:" "" `` `@Aksenp


Donc, c'est la réponse. Vous passez ces variables et ils sont émettés .


Oui mais comment puis-je les séparer? Comme si je clique sur le bouton de mise à jour, cela exécutera la mise à jour et si le bouton Ajouter allez exécuter la fonction Ajouter.


Pourquoi pas simplement: Data: {Fonction: 'Ajouter'}, sur PHP: si (ESSET ($ _ post [Fonction '])) {if ($ _ "Fonction"] == "Ajouter") {ECHO "Ajouter une pièce d'identité"; }}


Vous devez modifier la manière de Soumission, qui sera réglée sur le bouton et ce bouton soumettra le formulaire que vous avez désiré.


@LaDéveloppeurs, regardez les réponses ci-dessous


3 Réponses :


0
votes

On Soumettre Vous allez avoir la valeur définie afin que isset code> retourne toujours vrai. Ce que vous devez faire est:

if(!empty($_POST['add_data'])){
    echo "add id";
}


0 commentaires

-1
votes

Utilisez le code suivant pour séparer les actions de votre bouton:

HTML: P>

if(isset($_POST['task']) && $_POST['task'] == 'add'){
    echo "add id";
}
if(isset($_POST['task']) && $_POST['task'] == 'update'){
    echo "update_id";
}


6 commentaires

Vous devriez ajouter une explication de ce que vous avez changé et pourquoi .


@ 04FS, je n'ai pas changé cela, j'ai ajouté nom S de entrée s, par exemple son nom d'entrée = "id" . BTW Vous pouvez voir l'historique d'édition.


Je ne parle pas de l'historique de modification de votre réponse. "Utilisez le code suivant pour séparer les actions de votre bouton:" - Vous devriez Expliquer pourquoi , pas juste Afficher le code.


@ 04FS, ce code est facile à lire ou je devrais poster de nombreux liens de tutoriels sur ce que j'ai fait?


Vous devriez expliquer pourquoi / comment cela résout le problème de l'OP. Ils ne comprenaient évidemment pas ce qu'ils faisaient suffisamment pour pouvoir résoudre le problème par eux-mêmes, alors "facile à lire" ne devrait donc pas être le seul critère ici. Idéalement, ils (ou quiconque le trouvent plus tard) serait apprendre quelque chose de votre réponse, mais comme il s'agit actuellement, cela servira probablement simplement comme une "solution de copie et de pâte". Je ne dis pas écrire un didacticiel complet, mais quelque chose comme "Qu'est-ce que tu avais ne fonctionnait pas parce que [...], j'ai réparé cela en faisant [...] plutôt."


@ 04FS, 90% de réponses ici présentées de la même manière. Tout d'abord, regardez les commentaires ici et vous obtiendrez que ceci est une autre voie de soumission sur laquelle j'ai raconté dans les commentaires.



0
votes

Le problème est que votre formulaire contient à la fois add_data et update_data, de sorte qu'ils seront toujours définis dans $ _ post code>. Si vous souhaitez une action différente pour chaque bouton, vous pouvez attribuer une fonction à l'événement code> onclick code> aux deux boutons, vérifiez ce qui a provoqué l'événement et transmettez-le à vos données AJAX.

if($_POST["action"] == 0) {
echo "add_data";
} else {
echo "update_data";
}


3 commentaires

Il est inutile des informations sur POST Demande via en donnant des noms à chaque bouton lors de la soumission de formulaire.


@Aksenp Oui, je sais, mais cela faisait partie du code d'origine, alors je voulais le préserver comme l'adresseur de la façon dont l'adresseur l'avait. Mais je comprends que j'aurais dû pointer cela. Merci


Je viens de revenir si quelque chose n'est pas clair pour vous ou si vous avez besoin d'une aide supplémentaire avec cela. Et assurez-vous de marquer la bonne réponse comme l'acceptée.