[RESOLU] Envoi de plusieurs variables dans une page PHP avec AJAX

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Envoi de plusieurs variables dans une page PHP avec AJAX

Re: [RESOLU] Envoi de plusieurs variables dans une page PHP avec AJAX

par moogli » 29 mars 2017, 15:53

pour le JSON : JSON.stringify(object)

@+

Re: Envoi de plusieurs variables dans une page PHP avec AJAX

par lucieemtl » 29 mars 2017, 15:43

Pas exactement, j'ai modifié tout le code, même si le problème reste à peu près pareil, je n'ai pas le même résultat.
Je n'ai aucune idée de comment sérialiser en JSON, as-tu un lien pour que je vois comment faire s'il te plaît ?

Par ailleurs, si je renommes mes champs name comme tu le précises, c'est bien cette partie là ...

<script>
var iASup = $(this).val();
input = $("<input type=hidden />");
input.attr({
	"class" : "imgASupprim",
	"name" : "imgSup",
	"value" : iASup,
});
</script>

où "name" : "imgSup" devient imgSup[] c'est ça ?

Je suis désolé, pour la complexité mais cela est justifié, je ne m'attarde juste pas à tout expliquer :/


EDIT : Bah en fait, j'ai même pas pris le temps d'attendre que tu répondes, j'ai fais ce que je proposais au-dessus, ça a fonctionné ! :shock:

Re: Envoi de plusieurs variables dans une page PHP avec AJAX

par moogli » 29 mars 2017, 15:33

(re)salut,
tu serais pas en train de faire un deuxième sujet sur la même chose ? https://forum.phpfrance.com/php-debutan ... 78138.html

comme je te l'ai déjà un indiqué il faut que tu utilises la notation tableau pour nommer tes champs (name="toto[]") ou utiliser un tableau JS que tu sérialises en JSON

J'ai l'impression que tu fais quelque de super complexe pour rien.
Essai de simplifier ton code pour le rendre plus simple à lire et à maintenir.

@+

Envoi de plusieurs variables dans une page PHP avec AJAX

par lucieemtl » 29 mars 2017, 15:19

Bonjour,
Je sais bien que le forum porte l'intitulé PHPFrance, et justement j'ai quelques problèmes avec PHP mais surtout en AJAX.
J'essai si vous voulez, d'élaborer un script qui permettent, après une sélection par checkboxs, de supprimer des images d'une galerie.
Toutefois, lorsque j'envoie les données une à une dans ma page de traitement PHP, cela fonctionne, autrement, lorsque j'en envoie plusieurs il ne retient que le nom de la dernière :/

Soit le code suivant, à commencer par mon formulaire, dans lequel le jquery, y rajoute des input type hidden avec pour valeur, celle de l'image cochée à chaque fois (en mode console, je vois bien que chaque input et bien dissocié et unique avec une et une seule valeur qui correspond à chaque fois à l'image choisie).

<form class="formImgAsup" method="POST" action="suppImgs.php">
        <div></div>
        <button type="submit" name="valid" class="validSup sup" style="display:none;"/><i class="fa fa-trash-o"></i></button>
</form>

Ensuite, le jquery :

<script>
$('.imgAsup').hide();
			$('#supImgGal').on('click',function(){
				$(this).toggle();
				$('.validSup').show();
				$('.imgAlb').addClass('anim');
				$('.imgAsup').show();
				$('.alb').hide(1000);
				$("input[type=checkbox]").change(function() {
					$(this).each(function(i) {
						if (this.checked){
							var iASup = $(this).val();
							input = $("<input type=hidden />");
							input.attr({
								"class" : "imgASupprim",
								"name" : "imgSup",
								"value" : iASup,
							});
							$(".formImgAsup div").append(input);
							$(".formImgAsup").submit(function(e){
								e.preventDefault(); 
								var postData = $(this).serialize();
								var formURL = $(this).attr("action");
								$.post("suppImgs.php", postData, function(data){
									console.log(data);
								});
							});
						}
					});
				});
		});
</script>


Et dans le PHP pour l'instant, je n'ai fais que ça :
<?php print $_POST['imgSup']; ?>

Et en fait dans la console à chaque fois je n'ai que le nom de la dernière image :(
Quelqu'un saurait-il m'éclairer ?
Bien cordialement.
Lucie