transmission de tableaux d'objets

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 : transmission de tableaux d'objets

par slyfer07 » 17 janv. 2007, 21:36

merci de tes conseils,
finalement g opté pour la transmission des 2 autres identifiants par des champs input cachés et ça marche comme ça :)

par Ryle » 16 janv. 2007, 12:34

Via un formulaire tu ne peux transmettre que des couples de chaines clé/valeur, mais pas de structure. Au mieux, tu peux sérialiser un objet pour le transférer sous forme de chaine, mais ses attributs ne seront pas modifiés.

Utilises la commande print_r() sur ta variable $_POST["resultSelected"] pour voir ce qu'elle contient :
echo "<pre>";
print_r($_POST["resultSelected"]);
echo "</pre>";
Il te faut donc explicitement instancier un nouvel objet (ou déserialiser si tu en as passé un ainsi) et setter ses attributs avec les valeurs obtenues.


Par ailleurs, juste une remarque, en concaténant tes chaines au lieu d'enchainer les echo, ton code pourrait être un peu plus lisible je pense :)
echo '<input type="checkbox" name="resultSelected[]" value="'; echo "$resultObject"; echo'">'; echo"$Libelle1"; 
//
echo '<input type="checkbox" name="resultSelected[]" value="' . $resultObject .'" />' . $Libelle1; 

par Ryle » 16 janv. 2007, 12:24

Modération :
youenn, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message. J'ai édité ton message ;)

transmission de tableaux d'objets

par youenn » 16 janv. 2007, 12:20

Bonjour à tous,
j'aimerais savoir s'il est possible de transmettre des tableaux d'objets.
Je dispose d'une requete mysql me ramenant 4 champs (3 identifiants + 1 libelle) et je voudrais transmettre ces 4 valeurs à l'attribut "value" das cases à cocher de mon formulaire.
Je pensais donc faire le script suivant:
$result = mysql_query("Select table.id1, table.libelle1,  table2.id2, table3.id3 from ..etc") ;

while ($resultObject = mysql_fetch_object($result )) { 
    for ($j = 0; $j < count($result); $j++) { 

	$Id1 = $resultObject -> id1;
	$Id2 = $resultObject -> id2;
	$Id3 = $resultObject -> id3;
	$Libelle1 = $resultObject -> libelle1;
	echo '<br>';
	echo '<input type="checkbox" name="resultSelected[]" value="'; echo "$resultObject"; echo'">'; echo"$Libelle1";
	}
}
et pour récupérer et afficher les résultats à la page suivante, j'ai essayé ceci:

$result = $_POST["resultSelected"];// recuperation de mon tableau d'objets

$test = $result[0];// test de recuperation du 1er objet du tableau
$test2 = $test->libelle1; // test de recuperation du champ "libelle1"
echo "$test2"; // Pb ça ne m'affiche rien