Listes liées

Présentation
Il faut juste rajouter la connection à la base.
Téléchargement
1  0 
Téléchargé 109 fois Voir les 16 commentaires
Détails
Catégories : Formulaires
Avatar de frenchsting
Expert confirmé
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 15 février 2011




Avatar de Claudine Claudine - Membre régulier https://www.developpez.com
le 24/08/2011 à 17:11
Bonjour Frenchsting,
voilà 2 mois que je galère sur les listes liées mais malheureusement, toujours sans succès. Pouvez-vous m'aider?

J'ai testé votre logiciel et suis particulièrement intéressé par ce dernier.
Malheureusement, lors des tests, il me signale une erreur que je n'arrive pas à éliminer. J'ai travaillé par copier/coller puisse-que le téléchargement ne fonctionne pas!
Parse error: syntax error, unexpected T_STRING in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\essai3.php on line 95
Pouvez-vous m'aider à corriger cette ligne?
Code : Sélectionner tout
1
2
print"<option value="."id_salle. ">" . "nom_salle . "</option>";
De ce fait, il n'affiche rien dans la 2ème liste
Sincères remerciements
Claudine
Avatar de jreaux62 jreaux62 - Rédacteur/Modérateur https://www.developpez.com
le 24/08/2011 à 18:42
Bonjour,
Code : Sélectionner tout
echo '<option value="'. $id_salle. '">' . $nom_salle . '</option>';
(remplacer tous les print par des echo)

il faudrait aussi remplacer
print " selected";
par
Code : Sélectionner tout
echo ' selected="selected"';
Ca donne :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
	// Connexion a la base
	include('../connectbase.inc') ;
	// Execution requete
	$ma_req = "SELECT * FROM lieu;";
	$res_req = mysql_query($ma_req) or die("Selection table \"lieu\" impossible");

	// Affectation des variables utilisees pour l'affichage
	if (mysql_num_rows($res_req)!=0) { // resultat non vide
		while ($une_ligne = mysql_fetch_array($res_req)) {
			$id_lieu = $une_ligne["id_lieu"];
			$nom_lieu = $une_ligne["nom_lieu"];
			$sel_lieu = ($id_lieu == $lieux)? ' selected="selected"' : ''; // option selectionnee ? oui : non
			echo '<option value="'.$id_lieu'"'.$sel_lieu.'>'.$nom_lieu.'</option>';
		}
	}
?>
Avatar de Claudine Claudine - Membre régulier https://www.developpez.com
le 24/08/2011 à 20:03
Bonsoir Jreaux62
Grand merci pour cette réponse rapide.
En remplaçant dans un premier temps tous les 'print par 'echo' ainsi que :
Code : Sélectionner tout
echo ' selected="selected"';
tout fonctionne" presque" normalement puisque enfin et grâce à vous après une selection dans la liste des lieux, la 2ème liste me donne les choix possibles correspondants
Petit problème: le choix affiché dans la liste 1 ne reste pas affiché!
J'ai par la suite modifié le code comme indiqué(ca donne)
mais une erreur empêche de voir le résultat:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\essai3.php on line 56]
c'est-à-dire à la ligne:
Code : Sélectionner tout
echo '<option value="'.$id_lieu'"'.$sel_lieu.'>'.$nom_lieu.'</option>';
Pouvez-vous une fois de plus venir à mon secours car je n'arrive pas a trouver la solution?
Sincères remerciements car vous êtes mon sauveur après autant de recherches infructueuses.
Encore merci, mille fois merci
Claudine
Avatar de jreaux62 jreaux62 - Rédacteur/Modérateur https://www.developpez.com
le 24/08/2011 à 20:16
Il manque un point (après $id_lieu):
echo '<option value="'.$id_lieu.'"'.$sel_lieu.'>'.$nom_lieu.'</option>';
Pour que le choix reste affiché :
Code : Sélectionner tout
			$sel_lieu = ($id_lieu == $lieux)? ' selected="selected"' : ''; // option selectionnee ? oui : non
$lieux est justement le choix qui avait été fait
on doit avoir au début du fichier :
Code : Sélectionner tout
$lieux = $_POST['selectlieu'];
Avatar de Claudine Claudine - Membre régulier https://www.developpez.com
le 24/08/2011 à 21:03
Bonsoir Jreaux62
Désolé de vous importuner une fois de plus mais le message suivant apparaît:
Notice: Undefined index: selectlieu in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\essai3Bis.php on line 23
Mais cependant l'affichage du lieu selectionné reste affiché 1seconde pour disparaître mais, aussitôt dans le formulaire apparaît dans: >>>>>>1<<<<<<( ce qui correspond bien à l' ld du lieu)Ennuyeux que le nom du lieu ne reste pas affiché dans la liste lieu!
Je ne doute pas un instant que vous pourrez résoudre ce petit problème!
Sincères salutations et merci pour votre aide précieuse.
claudine
Avatar de jreaux62 jreaux62 - Rédacteur/Modérateur https://www.developpez.com
le 24/08/2011 à 21:22
Pour bien faire, il faudrait que tu donnes TON code (complet, si possible).

Au minimum, le bout de code qui vient avant et après l'erreur :
Notice: Undefined index: selectlieu in C:\Program Files\EasyPHP-5.3.3.1\www\infopub\essai3Bis.php on line 23
Avatar de Claudine Claudine - Membre régulier https://www.developpez.com
le 24/08/2011 à 22:48
Re Bonsoir
comme demandé, je te joins le fichier complet,ce qui te permettra de situer le problème pour la variable inconnue et surtout pour que l'affichage de lma donnée lieu reste affichée dans la liste:
Code : Sélectionner tout
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
<script language=javascript>
function modifcombo(){
document.location.replace("essai3.php?lieu=" + document.form1.selectlieu.value );
document.form1.selectlieu.value = $lieu;
}
</script>;
</head>
 
 <body>
 <?php
 
 if (isset($_GET['lieu'])){
   $lieu = $_GET['lieu'];
   } else {
     $lieu = NULL;
	 }
	 echo ">>>>" . $lieu ."<<< <br> <br> <br>";
	  $lieu = $_POST['selectlieu'];
	 ?>
	 <p>Essai formulaire</p>
	 <form name="form1" method="post" action="">
	 <table width="100%" border="1">
	 
	
	    <td><div align="right">lieu :</div></td>
		    <td><select name="selectlieu" class="txt16-000000" onChange="javascript : modifcombo()">
			      <option value=""></option>
				       <!-- Valeur vide pour forcer l'utilisateur ? s?lectionner  -->
					   
					         <?php
   // Connexion ? la base
   
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';

// connection à la DB

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

																  
												 // Execution requ?te
						  $ma_req = "SELECT * FROM lieu;";					  
						  $res_req = mysql_query($ma_req)
						   or die("Selection table \"lieu\" impossible");
						    
							// Affectation des variables utilis?es pour l'affichage
					   if (mysql_num_rows($res_req)!=0) {  // r?sultat non vide				   
					   while ($une_ligne = mysql_fetch_array($res_req)) {
					                         $id_lieu =  $une_ligne["id_lieu"];
											 $nom_lieu = $une_ligne["nom_lieu"];
											 $sel_lieu = ($id_lieu == $lieu)? '
		  selected="selected"' : ''; // option selectionnee ? oui : non
			echo '<option value="'.$id_lieu.'",'.$sel_lieu.'>'.$nom_lieu.'</option>';
		}
	}
?> 
											"</option>";
       }
	 }
      ?>
     </select>
  </td>
  </tr>
  <tr>
   <td> <div align="right">salle : </div></td>   
        <td><select name="selectsalle" class="txt16-000000">		
		      <option value=""></option>
			        <!-- Valeur vide pour forcer l'utilisateur ? s?lectionner  -->
					<?php
					  
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

						   ?>
					<?php	  
						       // Execution requ?te
	  $ma_req = "SELECT * FROM salle WHERE id_lieu = '$lieu';";
	     $res_req = mysql_query($ma_req)
		   or die("Selection table \"salle\" impossible");
		
		      // Affectation des variables utilis?es pour l'affichage
			     if (mysql_num_rows($res_req)!=0) 
				 {  // r?sultat non vide
				    while ($une_ligne = mysql_fetch_array($res_req)) {
						                     $id_salle = $une_ligne["id_salle"];
				                             $nom_salle = $une_ligne["nom_salle"];
			  
	echo '<option value="'. $id_salle. '">' . $nom_salle . '</option>';			
	
	       }
		    }
		?>
	  </select></td>
	 </tr>
	 </table>
	 </form>
	 </body>
	 </html>
Bonne nuit et à demain
merci pour votre aide
Claudine
Avatar de jreaux62 jreaux62 - Rédacteur/Modérateur https://www.developpez.com
le 24/08/2011 à 23:00
ok, ca, c'est le fichier php
(-> je vois déjà des bouts de codes qui n'ont pas lieu d'être ! ...)

Ce qu'il me faut (pour tester), c'est la source générée (dans le navigateur -> "afficher la source"
Avatar de jreaux62 jreaux62 - Rédacteur/Modérateur https://www.developpez.com
le 24/08/2011 à 23:38
A priori, ca doit ressembler à ca, une fois les fautes corrigées et le code remis en forme :
Code : Sélectionner tout
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
?>

<?php
// initialisation/recuperation de la selection
// lieu
if (isset($_GET['lieu'])){
	$lieu = $_GET['lieu'];
} elseif (isset($_POST['selectlieu'])){
	$lieu = $_POST['selectlieu'];
} else {
	$lieu = '';
}
// salle
if (isset($_POST['selectsalle'])){
	$salle = $_POST['selectsalle'];
} else {
	$salle = '';
}
?>

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
	<title>Document sans titre</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 
	<script type="text/javascript">
	function modifcombo(){
		document.location.replace("essai3.php?lieu=" + document.form1.selectlieu.value );
		document.form1.selectlieu.value = <?php echo $lieu; ?>;
	}
	</script>
</head>
 
<body>

	<p>Essai formulaire</p>

	<form name="form1" method="post" action="">
	<table width="100%" border="1">
	<tr>
	    <td>lieu :</td>
		<td>
			<select id="idselectlieu" name="selectlieu" class="txt16-000000" onchange="javascript: modifcombo();">
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php			// Execution requete : tous les LIEUX
				$ma_req = "SELECT * FROM lieu;";					  
				$res_req = mysql_query($ma_req) or die("Selection table \"lieu\" impossible");

				// Affectation des variables utilisees pour l'affichage
				if (mysql_num_rows($res_req)!=0) { // resultat non vide
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_lieu = $une_ligne["id_lieu"];
						$nom_lieu = $une_ligne["nom_lieu"];
						$sel_lieu = ($id_lieu == $lieu)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_lieu; ?>"<?php echo $sel_lieu; ?>><?php echo $nom_lieu; ?></option>
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
		<td>salle :</td>   
        <td>
			<select id="idselectsalle" name="selectsalle" class="txt16-000000">		
				<option value="">...</option><!-- Valeur vide pour forcer l'utilisateur a selectionner  -->
<?php	  		// Execution requete : les SALLES de ce lieu (selectionné)
				$ma_req = "SELECT * FROM salle WHERE id_lieu = '".$lieu."';";
				$res_req = mysql_query($ma_req) or die("Selection table \"salle\" impossible");
				// Affectation des variables utilis?es pour l'affichage
				if (mysql_num_rows($res_req)!=0) // resultat non vide
				{  
					while ($une_ligne = mysql_fetch_array($res_req)) {
						$id_salle = $une_ligne["id_salle"];
						$nom_salle = $une_ligne["nom_salle"];
						$sel_salle = ($id_salle == $salle)? ' selected="selected"' : ''; // option selectionnee ? oui : non
?>
				<option value="<?php echo $id_salle; ?>"<?php echo $sel_salle; ?>><?php echo $nom_salle; ?></option>	
<?php				} // fin while
				} // fin if
?> 
			</select>
		</td>
	</tr>
	<tr>
        <td colspan="2">
			<input type="submit" name="envoiformulaire" value="envoyer" />
		</td>
	</tr>
	</table>
	</form>

</body>
</html>
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique PHP