Posez votre question Signaler

[PHP][switch]

defi - Dernière réponse le 27 fév 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;
}
Lire la suite 

[PHP][switch] »

4 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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?
defi - 27 fév 2006 à 12:15
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;
}
}
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « [PHP][switch] » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook