<script type="text/javascript">
function url2()
{
var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
url +='&s_select_coll='+document.modif_livre.select_coll.value;
url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
url +='&id_livre='+document.modif_livre.id_livre.value;
url +='&choix='+document.modif_livre.choix.value;
url +='&rqt='+document.modif_livre.rqt.value;
for(j=1;j<11;j++)
{
var sa="select_aut"+j;
var saut=eval(sa);
if (saut!='')
{
url +='&s_select_aut'+j+'='+document.modif_livre.saut.value;
}
}
window.location.replace(url);
}
</script>
C'est plus lisible. [code], effectivement je n'ai pas lu le réglement, ca fait trois jour que je suis sur ce pb et je suis un peu trop préssé d'avoir une réponse, désolé je vais aller le lire.
Il me semble que je ne peu pas passer en paramétre le nom de mes champs du formulaire, puisqu'il y en a un nombre variable ?
Merci.<select name='select_aut".$n."' class='chx' onChange='url2()'>";
si je met ma boucle à plat dans la fonction url2() ca donne à peut près ca :Code : Tout sélectionner
function url2()
{
var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
url +='&s_select_coll='+document.modif_livre.select_coll.value;
url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
url +='&id_livre='+document.modif_livre.id_livre.value;
url +='&choix='+document.modif_livre.choix.value;
url +='&rqt='+document.modif_livre.rqt.value;
if (document.modif_livre.select_aut1.value){url +='&s_select_aut1='+document.modif_livre.select_aut1.value;}
if (document.modif_livre.select_aut2.value){url +='&s_select_aut2='+document.modif_livre.select_aut2.value;}
if (document.modif_livre.select_aut3.value){url +='&s_select_aut3='+document.modif_livre.select_aut3.value;}
if (document.modif_livre.select_aut4.value){url +='&s_select_aut4='+document.modif_livre.select_aut4.value;}
if (document.modif_livre.select_aut5.value){url +='&s_select_aut5='+document.modif_livre.select_aut5.value;}
if (document.modif_livre.select_aut6.value){url +='&s_select_aut6='+document.modif_livre.select_aut6.value;}
if (document.modif_livre.select_aut7.value){url +='&s_select_aut7='+document.modif_livre.select_aut7.value;}
if (document.modif_livre.select_aut8.value){url +='&s_select_aut8='+document.modif_livre.select_aut8.value;}
if (document.modif_livre.select_aut9.value){url +='&s_select_aut9='+document.modif_livre.select_aut9.value;}
if (document.modif_livre.select_aut10.value){url +='&s_select_aut10='+document.modif_livre.select_aut10.value;}
window.location.replace(url);
}Se qui est normal puisque le <select> select_aut3 n'existe pas, c'est la raison pour laquel je souhaite faire un test de l'existance du <select> avant le traitement.document.modif_livre.select_aut3 has no properties.
Code : Tout sélectionner
if (document.getElementById('id_du_champs')) { ... }<script language="JavaScript" type="text/javascript">
<!--
function url2(){
nbselect = document.getElementsByName('select_aut').length;
alert(nbselect); //juste pour tester si il détecte bien le nombre de select
var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
url +='&s_select_coll='+document.modif_livre.select_coll.value;
url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
url +='&id_livre='+document.modif_livre.id_livre.value;
url +='&choix='+document.modif_livre.choix.value;
url +='&rqt='+document.modif_livre.rqt.value;
for( i = 0 ; i < nbselect ; i++ ){
var nomselect = "select_aut"+i ;
if (document.getElementsByName('select_aut')[i].value != "" ){url +='&s_select_aut'+i+'='+document.getElementsByName('select_aut')[i].value;}
}
window.location.replace(url);
}
//-->
</script>
<?php
for( $i = 0 ; $i < 8 ; $i++ ){ //et tut peux changer le nombre de select ici
echo '<select id="select_aut'.$i.'" name="select_aut">';
echo '<option></option>';
echo '<option value="David Hallyday">David Hallyday</option>';
echo '<option value="Michael Jackson" >Michael Jackson</option>';
echo '<option value="Michel Jonasz" >Michel Jonasz</option>';
echo "</select><br/>";
}
?>
<input type="button" onclick="javascript:url2();" value="test" />
Si tu as besoin de plus de précisions..... echo '<select id="select_aut'.$i.'" name="select_aut[]">';
Notez les crochets : On récupèrera donc les différentes listes dans un tableau indexé select_aut[0], select_aut[1], select_aut[2], etc...//Affectation de variable et création du comtenus du select :
$i=1;
while ($enr = mysql_fetch_array($qry8,MYSQL_BOTH)) {
$tabaut[$enr[id_aut]]=$enr[auteur_aut];
$b="s_select_aut".$i;
$$b = isset(${$b}) ? ${$b} : 'nul';
$i++;
}
//Création des <select> dans le formulaire
$n=1;
while ($enr = mysql_fetch_array($qry7,MYSQL_BOTH)) {
$a="s_select_aut".$n;
echo "<tr><td class='acc1'>Auteur ".$n.": </td><td><input type='text' name='auteur".$n."' value=\"$enr[auteur_aut]\" size='75' class='or'";
if ((${$a} != '%' && ${$a} != 'new') || ${$a} =='%'){echo " disabled";}
echo "></td>";
echo "<td><select id='select_aut".$n." name='select_aut[]' class='chx' onChange='url2()'>";
echo "<option value='nul'>Pas de Changement</option>";
echo "<option value='new'";
if (${$a}=='new'){echo " selected";}
echo ">Nouvel</option>";
foreach ($tabaut as $c => $v){
echo "<option value='".$c."'";
if ($c == ${$a}){echo " selected";}
echo ">".$v."</option>";
}
echo "</select>";
echo "</td></tr>";
if (${$a} == '%' || ${$a} == 'new') {
echo "<tr><td class='acc1'><img src=\"../../img/photo/".$enr[photo_aut]."\"> </td><td colspan='2'><input type='file' name='pathphotoaut".$n."' class='fich'></td></tr>";
echo "<tr><td class='acc1' valign='top'>Note Auteur ".$n." : </td><td colspan='2'><textarea name='noteaut".$n."' rows='9' cols='150' class='or'>".$enr[note_aut]."</textarea></td></tr>";
}
$n++;
}
function url2()
{
nbselect = document.getElementsByName('select_aut').length;
alert(nbselect);
var url = './savlivre.php?PHPSESSID=<?php echo session_id()?>&s_select_edit='+document.modif_livre.select_edit.value;
url +='&s_select_coll='+document.modif_livre.select_coll.value;
url +='&s_select_cycle='+document.modif_livre.select_cycle.value;
url +='&id_livre='+document.modif_livre.id_livre.value;
url +='&choix='+document.modif_livre.choix.value;
url +='&rqt='+document.modif_livre.rqt.value;
for( j = 1 ; j <= nbselect ; j++ ){
var nomselect = "select_aut"+j ;
if (document.getElementsByName('select_aut')[j].value != "" ){
url +='&s_select_aut'+j+'='+document.getElementsByName('select_aut')[j].value;
}
}
window.location.replace(url);
}
Je cherche de mon coté.echo "<td><select id='select_aut".$n." name='select_aut[]' class='chx' onChange='url2()'>";
Mais j'y pense tu récupères ces données uniquement par l'url, donc les crochets sont inutiles