transmettre un tableau à 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 : transmettre un tableau à AJAX

re

par Frantz » 27 nov. 2006, 19:43

C'est bon, c'est résolu mon problème de resultats
aleatoire venait d'un pos = new Array() mal placé.

J'utilise donc la fonction join de javascript combinée avec la fonction
explode de PHP.


Merci !!

par Ajoloca » 26 nov. 2006, 21:20

C'est pour ça que je propose le pipe '|', mais c'est encore mieu d'utiliser une combinaison que l'on a peu de chances de trouver ''|~|".

par Truc » 26 nov. 2006, 21:14

EDIT :
Si tu ne mets pas de caractère séparateur, c'est la virgule qui sera utilisé.
justement c'est la où j'ai voulu en venir... ça se fait tout seul, non ?

Si le comportement est aléatoire c'est peut être du aux données => caractères => '," ou autre

par Ajoloca » 26 nov. 2006, 19:06

Re,

Tu utilises la méhode "join()" comme ceci

Code : Tout sélectionner

var maChaine = monTableau.join('|');
Tu obtiendras une chaîne de caractères du style
a|b|c|d
EDIT :
Si tu ne mets pas de caractère séparateur, c'est la virgule qui sera utilisé.

re

par Frantz » 26 nov. 2006, 19:00

Comment fais-tu ça en javascript ?

par Ajoloca » 26 nov. 2006, 18:55

Bonjour,

Pour quoi ne transformes-tu pas ton tableau JS en une chaine de caractères avec un caractère séparateur qui te permette de faire un implode() coté PHP ?

De cette manière tu ne transmets qu'une variable.

re

par Frantz » 26 nov. 2006, 18:45

Je recupère
1,2,5

Donc j'ai fais un explode puis print_r j'obtiens maintenant :
Array ( [0] => 1 [1] => 2 [2] => 5)

Mais le comportement est bizarre, des fois, je ne récupère
rien ??? étrange.

Je clic pourtant bien sur les lignes de mon tableau, elles se
mettent en grisée.

Je ne comprend pas ?? :idea:

par Truc » 26 nov. 2006, 17:58

En passant "pos" comme tu le fait tu récupère quoi dans le fichier de traitement ?

effectue un echo $_POST['pos'] pour voir.

re

par Frantz » 26 nov. 2006, 16:47

Salut truc,

Le principe est exactement le même que le code que je t'ai montré :

Code : Tout sélectionner

var pos = new Array(); var data=null; function modifajax() { var xhr_object = null; if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { document.write(xhr_object.responseText); eval(xhr_object.responseText); } } xhr_object.open("POST", "test.php", false); xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr_object.send(data); } function LigneChoix(lig) { pos.push(lig.rowIndex); } function Ajout_tr() { data = "act=ajouter"; data = data+"&pos="+pos+"&table="+tableau.name; modifajax(); }
Quand je clic sur une ligne d'un tableau, j'ajoute sa position
dans les tableaux des positions nommé "pos" je souhaite ensuite
envoyer ce tableau dans data. Je sais que ma technique n'est pas
bonne. Je sais aussi qu'il existe une autre technique consistant
à ajouter à chaque fois à la variable data les elements du tableau
(ex : data="pos[0]="+pos[0]+"&pos[1]="+pos[1];)

Est ce qu'il existe une autre technique permettant de transmettre
directement un tableau ?

Merci

par Truc » 26 nov. 2006, 16:32

Salut,
Si tu nous montrais le code en question on pourrait plus facilement répondre

transmettre un tableau à AJAX

par Frantz » 26 nov. 2006, 16:12

Bonjour,

je souhaitais savoir s'il était possible de transmettre un
tableau à ajax.

ex :
var tab=new Array();
tab[]=1;
tab[]=2;

data="tab="+tab; // données récupérée en POST dans fichier php

Apparemment mon script ne fonctionne pas, avez vous une solution ?

Merci !!