Switch case PHP

Fermé
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 - Modifié par TXC5000 le 26/06/2010 à 23:25
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 - 1 juil. 2010 à 22:22
Bonjour, je cherche un moyen pour faire un switch case, en ce moment j'utilise:
header('Location: createfinal.php?err=1');


Mais je dois éviter les redirections de page comme header.
Une idée?

voici mon code:
$err = (isset($_GET['err'])) ? $_GET['err'] : NULL;
switch ($err)
{
case 1:
echo('
<div class="error-message">
<ul>
<li id="error.required">Registration form is down for maintenance. Please come back later.</li>
</ul>
</div>
');
break;
default:
echo('');
}




A voir également:

8 réponses

Kaezzz Messages postés 18 Date d'inscription mercredi 23 juin 2010 Statut Membre Dernière intervention 29 juin 2010 5
29 juin 2010 à 10:55
Bonjour,

Je suis pas sur d'avoir compris ton problème mais tu ne peux pas faire de echo avec un header. Si tu veux rediriger a la suite de ta page je te conseil plutôt quelque chose du style :

<script language="javascript" type="text/javascript">

document.location="tapage.php"

</script>
0
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 7
30 juin 2010 à 00:28
Je ne veux justement pas utiliser header, cela produit une redirection, je veut juste un moyen pour changer de case sans faire de redirection.

Exemple:

$err = (isset($_GET['err'])) ? $_GET['err'] : NULL;
switch ($err)
{
case 1:
echo('
<div class="error-message">
<ul>
<li id="error.required">Username pas assez long...</li>
</ul>
</div>
');
break;
default:
echo('');
} 

$username = strtoupper($_POST["username"]);
if (strlen($username) < 6) {
header('Location: createfinal.php?err=1');
exit();
};


Je veut remplacer,
header('Location: createfinal.php?err=1');

pour quelque chose qui vas changer la case. (sans redirection)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 30/06/2010 à 09:17
du fait que switch case soit du php, ce dernier s'exécutant seulement sur le serveur, il faut absolument envoyer la page (donc un rechargement)

par contre si tu ne veux pas une redirection, il suffit de mettre dans ton <form ........ action="" />

tu mets tes vérifications php switch case au début de la page, donc elle va se recharger avec les messages d'erreur en plus

si tu veux éviter le rechargement il faut passer par du javascript

cherches "verification de saisie en javascript"
0
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 7
30 juin 2010 à 16:51
Merci de ta réponse sa ma éclairer, m'est case sont en effet dans ma forme. Par contre, quel est le code en PHP pour que ce sois la case 1 qui sois afficher et non celle pas Default.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juin 2010 à 18:14
il faut des ' ou des "

case '1':

ou

case "1":
0
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 7
1 juil. 2010 à 00:46
Mais comment je fait pour afficher la case 1? je veut juste évité les redirections...
0
doncjavascript
1 juil. 2010 à 11:04
donc javascript...
Euh de quel "case" tu parles? En anglais case c'est cas et pas case, donc rien à voir avec l'affichage. C'est une instruction conditionnelle(comme if , while, for, etc...)
En gros un switch c'est comme un if, sauf qu'avec if tu n'as que 2 valeurs possible(vrai/faux) avec un switch tu en as à l'infini:
case '1' veut donc dire que c'est le cas où la valeur de la variable à tester($err) vaut '1', case '2', quand la variable vaut '2', etc...default si ce n'est aucun des cas.

Donc selon ton code QUAND $err vaut '1':
on fait ça:
case 1:
echo('
<div class="error-message">
<ul>
<li id="error.required">Username pas assez long...</li>
</ul>
</div>
');
break;
// ca affiche donc un <div> qui contient une liste de 1 élément(<ul><li>...)
DEFAULT est donc ce qu'il se passe dans tous les autres cas autre que $err vaut '1'.:

echo('');
}

$username = strtoupper($_POST["username"]);
if (strlen($username) < 6) {
header('Location: createfinal.php?err=1');
exit();
);
//-- LE if dans un case pas trés reccomandé mais enfin... sauf que à moins que tu ait fait une erreur en copiant le code il manque l'accolade fermante du switch.


C'est tout bête mais quand on sait pas un mot on regarde dans le dictionnaire...dans un langage de programmation c'est pareil mais en plus important il faut avoir toujours le 'dictionnaire sous les yeux quand on parlers :

je sait pas me servir de l'instruction switch==>php manual "switch" qui t'en aurait fait gagné du temps si tu avait simplement tapé ça dans google(et à moi aussi du coup ;) )

<quote>
je veut juste évité les redirections...
</quote>
N'en met pas... m'enfin si tu transmet une variable via un formulaire je voit mal comment tu peut éviter une redirection, en php tout changement doit passer par le serveur, donc javascript ou mieux ajax...
0
TXC5000 Messages postés 51 Date d'inscription vendredi 25 juin 2010 Statut Membre Dernière intervention 1 juillet 2010 7
1 juil. 2010 à 22:22
Merci, j'ai acheté un livre PHP MYSQL et cela m'a beaucoup aidé, j'ai donc utilisé:
$err = 12;
include("script/php/error.php");

Et, j'ai mis le switch code dans
script/php/error.php
et cela marche très bien. merci pour m'avoir fait comprendre cette variable.
0