Bonjour à tous,
Je suis étudiant en informatique et suis actuellement en train d'étudier l'ajax et on a quelques petits exos (bref)
Pour donner une vue d'ensemble du problème
- On a une liste de ville genre (Strasbourg, Paris, Marseille, Toulouse, Lille)
- et on a des liaison qui relie une villa A à une ville B ..
Le problème se situe dans la modification d'une liaison.
Les liaisons enregistrées sont présentées de la sorte
Strasbourg -> Marseille
Paris -> Lille
sauf que l'utilisateur peut modifier (via des selected) les villes A et B d'une liaison.
Donc toute la difficulté est de proposer toujours une liste de ville ne comprenant pas la Ville A ou B déjà sélectionnée ..
Bref, j'ai déjà une fonction qui prend la liste des villes et me renvoie la liste sans la ville déjà sélectionnée.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public function getlist() { $villes = $this->vm->getList(); if($_POST['val']) { echo "document.getElementById('villeArrivee').innerHTML = ''"; foreach ($villes as $ville) { if($_POST['val'] != $ville->id()) { echo ' var opt = document.createElement("option") opt.value="'.$ville->id().'" var tx = document.createTextNode("'.$ville->nom().'") opt.appendChild(tx) document.getElementById("villeArrivee").add(opt, null) '; } } } }
SAUF QUE SAUF QUE SAUF QUE .. comme mes liaisons sont listées les une en dessous des autres je voudrai savoir s'il était pas possible de créer ou récupérer ou coller l'id de la liaison pour "identifier le selected à mettre à jour".
Genre ca ..
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 foreach ($liaisons as $l) { echo '<form method="post">'; echo '<input type="hidden" value="' . $l->id() . '" name="id" />'; echo '<select name="villeDepart" id="villeDep'.$l->id().'" onChange="select_ville()">'; // <------- ICIIIIIII foreach ($villes as $v) { if($v->id() != $l->villeArrivee()) { echo '<option value="'.$v->id().'"'; if ($v->id() == $l->villeDepart()) { echo ' selected="selected"'; } echo '>'.$v->nom().'</option>'; } } echo '</select>'; echo '<span> -> </span>'; echo '<select name="villeArrivee" id="villeArr'.$l->id()'">'; foreach ($villes as $v) { if($v->id() != $l->villeDepart()) { echo '<option value="'.$v->id().'"'; if ($v->id() == $l->villeArrivee()) { echo ' selected="selected"'; } echo '>'.$v->nom().'</option>'; } }
Partager