Créer une ancre en JavaScript
Bonjour à tous ! :mrgreen:
Je reviens avec un nouveau défit ! :mouarf: Avant tout, sachez que j'ai cherché mais... hélas :mur: Toutes mes tentatives furent infructueuses. Je ne sais même pas si ce que je veux faire se fait en java ou en php !
Voila, j'ai une liste de restaurants. Grâce à Java, quand le l'utilisateur clique sur un restos, alors en dessous apparaît sa fiche en un clic. A la première ouverture de la page, nous voyons le message SÉLECTIONNER UN RESTAURANT. Voici le code de cette page (j'ai juste mis le code qui nous intéresse :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<script type="text/javascript">
function afficher_cacher(id)
{
if(document.getElementById(id).style.visibility=="hidden")
</script>
</head>
<?php include("include/entete.php");?>
<?php include("include/menu.php");?>
<?php include("include/connect.php");?>
<form clASs="note" method="post" action="fiche.php">
<h4>Pour quel restaurant voulez-vous consulter la fiche ?</h4>
<p><select name="choix_restos" id="choix_restos" selected="selected" onchange="javAScript:submit(this)" required >
<?php
$selected = $_POST['choix_restos'];
$reponse = $bdd->query('SELECT * FROM restos ORDER BY nom'); ?>
<option value="o">--</option>
<?php
while ($choix = $reponse->fetch())
{
$selected = ($choix['nom'] == $_POST['choix_restos']) ? ' selected' : '';
echo '<option value="'.$choix['nom'].'"'.$selected.'>'.$choix['nom'].'</option><br />';
}
$reponse->closeCursor();
?>
</select>
</form>
<?php
//Premier chargement de page Test variable, inexistante pour le moment, $_POST['choix_restos'].
if (isset($_POST['choix_restos']) AND ($_POST['choix_restos']<>'o'))
{
//Récupération des données du formulaire
$_POST['choix_restos'];
//Création de variables pour affichages
$tiret="- ";
$vact1=false;
$vact2=false;
$vact3=false;
$vact4=false;
?>
<?php
$req = $bdd->prepare('SELECT ID, nom , adresse, telephone, horaire, emporte, livre, spe1, spe2, spe3, spe4 FROM restos WHERE nom = ?');
$req->execute(array(
$_POST['choix_restos']));
while ($donnees = $req->fetch())
{
?>
<div id="reponse">
<h4>Fiche Restaurant</h4>
<p><strong>Nom</strong> : <?php echo $donnees['nom']; ?></p>
<p><strong>Adresse</strong> : <?php echo $donnees['adresse']; ?></p>
<p><strong>Téléphone</strong> : <?php echo $donnees['telephone']; ?></p>
<p><strong>Horaire</strong> : <?php echo $donnees['horaire']; ?></p>
<p><strong>Emporte</strong> : <?php echo $donnees['emporte']; ?></p>
<p><strong>Livre</strong> : <?php echo $donnees['livre']; ?></p>
<p><strong>Activité</strong> :</br> |
A côté de ça... :D J'ai une page de recherche qui affiche les restaurants selon les critères d'activités. Sur la réponse, j'ai crée un lien qui retourne vers fiche.php, la première feuille.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
<div id="new_cherche">
<p><a href="recherche.php">Faire une nouvelle recherche</a></p>
</div>
<div id="result">
<p class="fiche_restos"><?php if(isset($results)){
foreach($results as $result){
//même nom que les champs de ta base
?>
</br>Nom du restaurant : <a href="fiche.php#<?echo $result['nom'];?>"><span class="name_restos"><?php echo $result['nom'];?></span></a> </br>
class="name_restos"><?php echo $result['nom'];?></span></a> </br>
Activité : <?php echo $result['spe1'];?>
<?php echo $result['spe2'];?>
<?php echo $result['spe3'];?>
<?php echo $result['spe4'];?> <br/>
Prestation "A emporte" : <?php echo $result['emporte'];?><br/>
Prestation "A livrer" : <?php echo $result['livre'];?> </br>
<?php
}
} ?></p>
<?php
//fermeture de la connexion
$db=NULL;
}
else {
?>
<div>
<p class="critere">Vous n'avez sélectionner aucun critère. </p>
</div>
<div id="new_cherche">
<p><a href="recherche.php">Faire une nouvelle recherche</a></p>
</div>
<?php
}
?> |
Je pense que avez compris ce qu'il se passe... Dès que je clique sur un nom de resto, je retourne bien à la page fiche.php mais... comme le $_POST est vide, alors j'ai le gentil message : "Merci de sélectionner un restaurant" alors que je souhaite crée une ancre sur le restaurants choisi...
J'ai essayé avec #<?php echo...> mais comme vous le voyez, ça ne fonctionne pas vu que $_POST est vide ! :?
Quoi prendre en compte ? $_GET ou $_POST ou les deux ?
Citation:
Envoyé par
Lorenzo77
salut,
dans ce cas la (voir message de bourvil), tu dois recuperer ta valeur (choix_restos) en GET et non pas en POST :
$_GET['choix_restos']
ps : tu confonds ancre (#) et parametre (?)
J'ai essayé ta solution et celle de Bourvil. Pour répondre à plusieurs question :
- Dans le fichier fiche.php, c'est bien $_POST['choix_restos'] qui est appelé.
- Où dois-je écrire $_GET['choix_restos'] ? Dans le fichier fiche.php ? Et si oui,
comment dire "à la réponse" qu'elle doit accepter deux, soit $_GET ou $_POST ?
J'ai essayé les deux solutions proposées et ça ne fonctionne pas. Je reviens toujours sur "Merci de sélectionner un restaurant". :(