[PHP][switch]

Fermé
defi - 27 févr. 2006 à 10:51
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 27 févr. 2006 à 13:23
Quand j'appelle une fonction choix()
par php dans un switch quelque soit la valeur retournée par cette fonction c'est le case 0 qui se déclanche. Quelqu'un peut-il m'aider?

La fonction : function choix()
{
if (nonvide()== 0) return 0;// mettre en alert de remplir
else
{
if (age(tableau[10])>=18) return 1;// afficher le recap adulte
else
{
if ((tableaup1[4]== 0)&& (tableaup2[4] == 0)) return 2 ; // mettre en alert de remplir un parent
else if ((tableaup1[4] == 0) && (tableaup2[4] == 1))
{
if (nonvidep2() == 0) return 3 ; // mettre en alerte de remplir un parent
else
{ return 4 ; // afficher le p2
}
}
else if ((tableaup1[4] == 1) && (tableaup2[4]== 0))
{
if (nonvidep1() == 0) return 5 ;
// mettre en alerte de remplir un parent
else
{ return 6 ; //afficher le p1
}
}
else if ((tableaup1[4] == 1) && (tableaup2[4] == 1))
{
if ((nonvidep1() ==0) && (nonvidep2()==0)) return 7; // mettre en alert de remplir les 2 parents
else if ((nonvidep1() ==1) && (nonvidep2()==0)) return 8; // afficher le parent P1
else if ((nonvidep1() ==0) && (nonvidep2()==1)) return 9; // afficher le parent P2
else if ((nonvidep1() ==1) && (nonvidep2()==1)) return 10; // afficher les 2 parents
}
}
}
}


Le switch sur php :
switch('<script>choix()</script>') {

case '0' :
echo '<script> alert ("cas0") ; </script>';
break;
case '1':
echo '<script> alert ("cas1") ; </script>';
break;
case 2 :
echo '<script> alert ("cas2") ; </script>';
break;
case 3 :
echo '<script> alert ("cas3") ; </script>';
break;
case 4 :
echo '<script> alert ("cas4") ; </script>';
break;
case 5 :
echo '<script> alert ("cas5") ; </script>';
break;
case 6 :
echo '<script> alert ("cas6") ; </script>';
break;
case 7 :
echo '<script> alert ("cas7") ; </script>';
break;
case 8 :
echo '<script> alert ("cas8") ; </script>';
break;
case 9 :
echo '<script> alert ("cas9") ; </script>';
break;
case 10 :
echo '<script> alert ("cas10") ; </script>';
break;
default :
echo '<script> alert ("cas11") ; </script>';
break;
}
A voir également:

3 réponses

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
27 févr. 2006 à 11:28
Salut,
Tu semble mélanger du javascript avec du PHP. Je dits ça car je vois des
balises script et des variables sans $ dans la fonction choix.

Hors cela n'est pas possible à priori :
Lorque le navigateur demande un page : le serveur exécute le PHP pour générer
la page, puis le navigateur exécute le JS si il en rencontre et qu'il sait le faire.

Dans ton cas, il faut surement que tu fasses tout en JS.
En PHP, la condition de ton switch '<script>choix()</script>' sera toujours la
chaine de carectères et non le résultat de l'éxécution de la fonction choix().

A+, crabs
0
En effet choix() est bien une fonction sous javascript mise dans une autre page script.php. Dans mon switch() je l'appelle.

Sinon comment faire pour que le résultat pris en compte par le switch soit le résultat de la fonction?
0
Merci de ne pas répondre j'ai la solution. J'ai tout mis en javascript et php appelle une seule fonction selection():

function choixp()
{
if (nonvide()== 0) document.write("0");// mettre en alert de remplir
else
{
if (age(tableau[10])>=18) document.write("1");// afficher le recap adulte
else
{
if ((tableaup1[4]== 0)&& (tableaup2[4] == 0)) document.write("2") ; // mettre en alert de remplir un parent
else if ((tableaup1[4] == 0) && (tableaup2[4] == 1))
{
if (nonvidep2() == 0) document.write("3") ; // mettre en alerte de remplir un parent
else
{ document.write("4") ; // afficher le p2
}
}
else if ((tableaup1[4] == 1) && (tableaup2[4]== 0))
{
if (nonvidep1() == 0) document.write("5") ;
// mettre en alerte de remplir un parent
else
{ document.write("6") ; //afficher le p1
}
}
else if ((tableaup1[4] == 1) && (tableaup2[4] == 1))
{
if ((nonvidep1() ==0) && (nonvidep2()==0)) document.write("7"); // mettre en alert de remplir les 2 parents
else if ((nonvidep1() ==1) && (nonvidep2()==0)) document.write("8"); // afficher le parent P1
else if ((nonvidep1() ==0) && (nonvidep2()==1)) document.write("9"); // afficher le parent P2
else if ((nonvidep1() ==1) && (nonvidep2()==1)) document.write("10"); // afficher les 2 parents
}
}
}
}

var n = document.write(choix());

function selection()
{
switch(choix()) {

case 0 :
alert ("cas0") ;
break;
case 1:
alert ("cas1") ;
break;
case 2 :
alert ("cas2")
break;
case 3 :
alert ("cas3") ;
break;
case 4 :
alert ("cas4")
break;
case 5 :
alert ("cas5") ;
break;
case 6 :
alert ("cas6") ;
break;
case 7 :
alert ("cas7") ;
break;
case 8 :
alert ("cas8") ;
break;
case 9 :
alert ("cas9") ;
break;
case 10 :
alert ("cas10") ;
break;
default :
alert ("cas11") ;
break;
}
}
0
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
27 févr. 2006 à 13:23
Salut,
Pour préciser, PHP n'appelle pas de fonction javascript, il insère dans le
html le code qui demande au navigateur d'appeler cette fonction.
A+, crabs
0

Discussions similaires