Bonjour,
La il faut m'expliquer brievement. J'ai une fonction en javascript qui marche dans un cas et pas dans d'autre. Je m'explique :
- Une page de selection de dossier en php avec des boutons de radio.
- Sur cette page un lien vers une fonction javascipt = afficher le dossier selectionne dans un pop up.
Tout cela marche sauf quand il n'y a qu'un seul dossier dans la liste avec donc un seul bouton radio. Quand j'essaye de debugguer avec des alert, il me dit que ma variable window.cdd.candselect.length est non definie. Pourtant, il y a bien sur la page l'affichage d'un bouton radio a cote du dossier.
Je vous mets les codes php de la page (en raccourci) et de la fonction javascript en question.
Merci d'avance si vous trouvez.
La page
/* Le formulaire */
echo "<form name=\"cdd\" action=\"myac.php?key=$key\" method=\"post\">";
/* le haut de la table avec une serie d'image dont celle qui appelle la fonction javascript avec OnClick */
echo "<br><table width=\"600\" cellspacing=\"1\" cellpadding=\"0\" border=\"0\">";
echo "<tr>";
echo "<td align=left width=\"400\"><b>Liste de vos candidatures</b></td>";
echo "<td align=right><a href=\"myaccandnew.php?key=$key\" title=\"Nouvelle candidature\"><img src=\"pic/new.jpg\" border=\"0\"></a><img src=\"pic/voir.jpg\" border=\"0\" title=\"Voir la candidature selectionnée\" OnClick=\"visudossiercand()\"><img src=\"pic/modif.jpg\" border=\"0\" title=\"Modifier la selection\" OnClick=\"nondispo('Modifier la sélection')\"><img src=\"pic/suppr.jpg\" border=\"0\" title=\"Supprimer la selection\" OnClick=\"nondispo('Supprimer la selection')\"><img src=\"pic/pdf.jpg\" border=\"0\" OnClick=\"nondispo('Make PDF')\"></td>";
echo "</tr></table>";
$nom_hote="localhost";
$nom_utilisateur="root";
$password="";
mysql_connect($nom_hote, $nom_utilisateur, $password);
$base=mysql_select_db("wopr");
$demandes=mysql_query("SELECT * FROM candidatures WHERE student='$key' ORDER BY `inscrit` ASC ")or die('Erreur SQL !<br>'.$auto2.'<br>'.mysql_error());
/* (... definition des variables dimention $dim et de la banderole etiquettes du tableau...) */
/* Les lignes contenant les dossiers a visualiser dans le popup */
echo "<table width=\"600\" cellspacing=\"1\" cellpadding=\"0\" border=\"0\">";
$contcandid=0;
while ($lign=mysql_fetch_object($demandes)) {
$idcand=$lign->ID;
$programme=$lign->programme;
$pays1=$lign->pays1;
$pays2=$lign->pays2;
$pays3=$lign->pays3;
$du=$lign->datedebut;
$au=$lign->datefin;
$motiv=$lign->motivation;
$statut=$lign->statut;
echo "<tr bgcolor=\"$colortabcase1\" OnMouseOver=\"bgColor='$colortabcase2'\" OnMouseOut=\"bgColor='$colortabcase1'\">";
echo "<td align=center width=\"$dimprog\"><font class=\"tab\"><b>$programme</b></font></td>";
echo "<td width=\"$dimpays\"><font class=\"tab\">1 : $pays1<br>2 : $pays2<br>3 : $pays3</font></td>";
echo "<td width=\"$dimduau\" align=center><font class=\"tab\">Du $du<br>Au $au</font></td>";
echo "<td width=\"$dimmotiv\" align=center><font class=\"tab\"><img src=\"pic/motiv.jpg\" border=\"0\" OnClick=\"visumotiv('$idcand')\"></font></td>";
echo "<td width=\"$dimstatut\" align=center><font class=\"tab\">$statut</font></td>";
echo "<td width=\"$dimcheck\" align=center><input name=\"candselect\" type=\"radio\" value=\"$idcand\"></td></tr>";
$contcandid=$contcandid+1;
}
if ($contcandid==0){
echo "<tr><td align=left>Aucune candidature enregistrée</td></tr>";
}
echo "</table>";
echo "</form>";
Le Javascript
Code : Tout sélectionner
function visudossiercand(){
var pas=0;
var dossier;
var nbcase=window.cdd.candselect.length;
var i=0;
var wPopup;
for (i; i<nbcase; i++) {
if (cdd.candselect[i].checked) {
dossier=cdd.candselect[i].value;
pas += 1;
}
}
if (pas==0){
alert("Aucun case selectionnée");
}else{
wPopup = window.open('candidature.php' + '?idcand=' + dossier, 'img_popup', 'width=400, height=300, top='+(screen.height-50)/3+', left='+(screen.width-50)/3+', status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=yes, resizable=yes');
wPopup.document.close();
}
}