Salut a tous,
J'ai un formulaire sur n page php qui est :
Or, je voudrais tester que dans la table ou va se faire l'ajout je n'aurais pas dejà une valeur identique. Et si c'est le cas selectionner la valeur par defaut du select.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 echo PHP_EOL . '<form action="' . $_SERVER['PHP_SELF'] . '" method="post" name="frm" id="frm" enctype="application/x-www-form-urlencoded">'; echo PHP_EOL . '<input name="mode" type="hidden" value="add_relation" />'; echo PHP_EOL . '<input name="node" type="hidden" value="' . $node . '" />'; echo PHP_EOL . '<input name="b3" type="hidden" value="'. $b3 . '" />'; echo PHP_EOL . '<input name="b1" type="hidden" value="'. $docs->id_int . '" />'; // Selection du type de reference echo '<select id="ID_type_ref" name="ID_type_ref" dir="ltr" onblur="modifTypeRefPourRelationB1B3('.$b3.', \'b3\')">'; $i=0; foreach ($liste_type_ref as $k_type_ref => $tab_type_ref) { echo '<option value="'.$tab_type_ref['ID'].'" '.(($i==0)?'selected':'').'>'.$tab_type_ref['type_ref'].'</option>'; $i++; } echo '</select>'; echo PHP_EOL . ' <input class="button_add" name="btn" value="Ajouter" type="submit" />'; echo PHP_EOL . '</form>';
Dans cet objectif, j'ai fait une methode jajax:
J'utilise la méthode getXhr() définit par SIddh dans son tuto, "aller plus loin avec ajax".
Code : 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 /** * Méthode qui sera appelée pour chaque select modifiant le type de ref de la relation B1-B3 */ function modifTypeRefPourRelationB1B3(id_ref_bib, type_biblio) { var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ if (xhr.status==200 || xhr.status==0){ alert('La ref bib est deja un fragment4.'); alert(xhr.responseText); }else{ alert ("statut: "+xhr.status+" Texte: "+xhr.statusText); } } } xhr.open("POST","action_ajax.php",false); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send("action=modifTypeRefPourRelationB1B3&id_ref_bib="+id_ref_bib+"&type_biblio="+type_biblio); }
Sur la page, action_ajax.php:
Code : 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 /** * MODIFIER LE TYPE DE REFERENCE D'UNE RELATION B1-B3 * SSI LA REF BIB A L'ORIGINE DE L'ACTION N'EST PAS DEJA DU TYPE FRAGMENT * ---------------------------------------------------------------------------------- */ if ((isset($_POST['action'])) && ($_POST['action']=='modifTypeRefPourRelationB1B3')) { if ($_POST['type_biblio']==1) { $sql='SELECT ID FROM Table1 WHERE ID_b1 = :id AND ID_type_ref = :id_type'; } else { // retourner 0 $sql='SELECT ID FROM Table1 WHERE ...'; } $req = $db->res->prepare($sql); $temp=$req->execute( array('id' => $_POST['id_ref_bib'], 'id_type' => ID_TYPE) ); }Vous l'aurez compris, je n'arrive pas à récupérer le résultat de mon select sql pour gérer si oui ou non, je dois selectionner un autre item du select html.
Partager