[RESOLU] problème de redirection en php

Eléphanteau du PHP | 25 Messages

22 févr. 2023, 22:05

Bonsoir les pros

mon souci est quand je sélectionne un choix depuis une liste déroulante il m'envoie toujours sur la première page : pointagesA1.php....... peut importe le choix que je fais il me renvoie toujours sur cette dernière
prière de m'aider à résoudre ce problème est merci à vous infiniment :priere: :priere: :priere: :priere:

code page principale : choix.php

Code : Tout sélectionner

<form action="item-search.php"> <div class="input-group"> <input class="awesomplete" name="items" onchange="this.form.submit()" list = "mylist" placeholder = "Choisir Salle..."/> <datalist id = "mylist" name="items"> <option value="A1">Salle TP A1</option> <option value="A2">Salle TP A2</option> <option value="A3">Salle TP A3</option> </datalist>
Code item-search.php est le suivant :

Code : Tout sélectionner

<?php $items = $_POST['items']; if ($items = 'A1') { header("Location: pointagesA1.php"); } elseif ($items = 'A2') { header("Location: pointagesA2.php"); } elseif ($items = 'A3') { header("Location: pointagesA3.php"); } ?>

ynx
Mammouth du PHP | 586 Messages

23 févr. 2023, 00:25

Bonsoir,

attention à ne pas confondre les opérateurs d'affectation et les opérateurs de comparaison ;)
https://www.php.net/manual/fr/language.operators.php

Un bon réflexe, c'est de mettre la variable php à droite dans ta comparaison : PHP déclenchera une erreur si tu oublies un =
if ('A1' == $items) {
	header("Location: pointagesA1.php");
}
elseif ('A2' = $items) { // syntax error, unexpected token "="
	header("Location: pointagesA2.php");
}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 févr. 2023, 00:34

Et un autre bon réflexe, c'est de toujours faire suivre un header("Location:..."); d'un die(); pour être sûr que rien d'autre ne sera renvoyé après que l'on ait demandé une redirection, sinon certains navigateurs peuvent avoir des fonctionnements erratiques
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 25 Messages

24 févr. 2023, 02:21

Et un autre bon réflexe, c'est de toujours faire suivre un header("Location:..."); d'un die(); pour être sûr que rien d'autre ne sera renvoyé après que l'on ait demandé une redirection, sinon certains navigateurs peuvent avoir des fonctionnements erratiques
mercii

Eléphanteau du PHP | 25 Messages

24 févr. 2023, 02:22

Bonsoir,

attention à ne pas confondre les opérateurs d'affectation et les opérateurs de comparaison ;)
https://www.php.net/manual/fr/language.operators.php

Un bon réflexe, c'est de mettre la variable php à droite dans ta comparaison : PHP déclenchera une erreur si tu oublies un =
if ('A1' == $items) {
	header("Location: pointagesA1.php");
}
elseif ('A2' = $items) { // syntax error, unexpected token "="
	header("Location: pointagesA2.php");
}

merci