Pourquoi ca marche plus ?
Posté : 08 mai 2006, 18:45
**** MODERATEUR --> Merci de placer ce message dans la section Javascipt car poste ici par erreur, merci. ****
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
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();
}
}