8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'aimerai remplir une listebox à partir du résultat d'un requête.
Pour celà je procède de la manière suivante:

 <?
 	require 'objet/objet_connect.php';
	$bdd = new bdd_connect();
	$bdd->connect();
	$request = mysql_query("SELECT id_projet, nom_projet FROM matable");
	$request1 = mysql_fecth_array($request);
?>

blabla &nbsp <select name='liste'>
<?
for($request1){?>
<option value=<?$request1[0]?>><?$request1[1]?></option>
<?}?>


Voilà l'erreur qui m'est affichée: Parse error: syntax error, unexpected ')', expecting ';' in /data1/frais/popup.php on line 125

Problème de parenthèse et ; sur ma ligne for(.... à priori Oo

Est-ce la bonne syntaxe pour récupérer mes données?
Modifié par dubtphp (05 Jun 2008 - 10:41)
D'ailleurs ce n'est pas la plus adaptée à ta requête : tu pourrais par exemple utiliser un while
<select name='liste'>
<?php
 	require 'objet/objet_connect.php';
	$bdd = new bdd_connect();
	$bdd->connect();
	$request = mysql_query("SELECT id_projet, nom_projet FROM matable");
while ($request1 = mysql_fecth_row($request)) {
 	echo '<option value="'.$request1[0].'">'.$request1[1].'</option>';
}
?>
</select>

En passant, c'est une bonne habitude de mettre <?php plutôt que <? pour ne pas risquer de problème d'interprétation Smiley murf !

A+
Modifié par Heyoan (04 Jun 2008 - 16:11)
Merci de la réponse heyoan.

Au niveau de la listbox c'est parfait, elle est bien créée seulement aucune valeur n'apparait alors que ma requête récupère bien les résultats quand je la test sous sql.

Suite à ça un deuxième problème intervient, la suite du popup ne s'affiche plus. Smiley decu
Je suis sensé récupérer la date du début du mois mais l'insertion de ton code semble l'affecter, cela me provoque une erreur du type document.getElementsByName("date1")[0] has no properties . Smiley bawling

Dire que je fais de l'ajax/js et j'arrive pas à faire une listbox ><

/part chercher la corde

Merci de ton aide.
Oui désolé ^^'


 <input type="radio" name="type" value="lplus" id="type"/> FEDER <select name='liste'>

<?php

 	require 'objet/objet_connect.php';

	$bdd = new bdd_connect();

	$bdd->connect();

	$request = mysql_query("SELECT id_projet, nom_projet FROM matable")or die (mysql_error());

while ($request1 = mysql_fecth_row($request)) {

 	echo '<option value="'.$request1[0].'">'.$request1[1].'</option>';

}

?>

</select>  <br/><br/>
		<label>Date du </label><input type="Text" name="date1" value="" size="20"> <a href="javascript:cal1.popup();"><img src="image/calendrier/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour obtenir la date."></a>
         &nbsp au <input type="Text" name="date2" value="" size="20"> <a href="javascript:cal2.popup();"><img src="image/calendrier/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour obtenir la date."></a>
        <br/><br/>

Voilà pour l'affichage.

Le calendrier est appelé à l'aide :

<script language="JavaScript">
			<!-- // create calendar object(s) just after form tag closed
				 // specify form element as the only parameter (document.forms['formname'].elements['inputname']);
				 // note: you can have as many calendar objects as you need for your application
				var cal1 = new calendar1(document.forms['formulaire'].elements['date1']);
				cal1.year_scroll = true;
				cal1.time_comp = false;
				var cal2 = new calendar1(document.forms['formulaire'].elements['date2']);
				cal2.year_scroll = true;
				cal2.time_comp = false;
	
			//-->
			</script>	


Le problème semble venir de :

function date_debut()
{
  var date=new Date();
  var mois = date.getMonth()+1;
  var annees = date.getFullYear();
  
  var date_finale = "01-"+ mois +"-"+ annees;
  document.getElementsByName("date1")[0].value=date_finale;
}

document.getElementsByName("date1")[0].value=date_finale; has no properties ...
Et avec
<label for="date1">Date du </label><input type="Text" [b]id="date1"[/b] name="date1" value="" size="20">
et dans la fonction
document.getElementById("date1").value=date_finale;
Aucun changement malheureusement.

Je ne comprends pas en quoi le fait de rajouter ce select ait une quelconque implication sur le champs date et le script s'y rapportant.
dubtphp a écrit :
Je ne comprends pas en quoi le fait de rajouter ce select ait une quelconque implication sur le champs date et le script s'y rapportant.
Ben moi non plus Smiley rolleyes ! Tu n'aurais pas une page en ligne ?
C'est une application en intranet avec identifiant pour y acceder donc non désolé.

Je crois je vais plancher dessus cette nuit ^^

Merci en tout cas.

edit: Après test sur l'emplacement de la listbox celle-ci ne bloque l'affichage que des éléments présent après.
Du coup si je la met à la fin tout s'affiche.
Je garde néanmoins l'erreur sur date1 et une listbox vide.
Problème de construction de cette dernière?

N'y aurait-il pas une alternative au select permettant d'avoir une présentation similaire?
Modifié par dubtphp (04 Jun 2008 - 17:08)
dubtphp a écrit :
edit: Après test sur l'emplacement de la listbox celle-ci ne bloque l'affichage que des éléments présent après.
Du coup si je la met à la fin tout s'affiche.
Je garde néanmoins l'erreur sur date1 et une listbox vide.
Problème de construction de cette dernière?

N'y aurait-il pas une alternative au select permettant d'avoir une présentation similaire?
A priori c'est bien l'élément qui convient Smiley cligne .

Tu pourrais copier-coller le code html généré (entre <form ...> et </form>) ?
Euh... on s'est croisés !

Si "même qu'en haut" veut dire qu'il faut reprendre le code de ton premier code je voulais au contraire parler du code html disponible en affichant la source de la page générée !
Modifié par Heyoan (04 Jun 2008 - 17:33)
En fait cela signifiait même que le post précédent, le js ne s'exécutant pas si je met le select avant.
Mais comme tu le demandes:

<form name="formulaire">
<div id="d1">

			<p>
			  <input name="id_perso" type="hidden" value="<?echo $_GET['id_perso'];?>">
			  Identifiant de la mission : <input type="Text" name="mission" value="<?echo $id_frais;?>" size="20"><br/><!-- Recupération de l'identifiant créé au préalable de manière aléatoire-->
			  <label>Destination : </label><input type="radio" name="dest" value="france" id="dest" checked="checked" /> France
			  <input type="radio" name="dest" value="etranger" id="dest"/>Etranger<br/><br/>
			  <label>Type : </label><input type="radio" name="type" value="adn" id="type" checked="checked"/>ADN
			  <input type="radio" name="type" value="lplus" id="type"/> ++ &nbsp 			<select name='liste'>

<?php

 	require 'objet/objet_connect.php';

	$bdd = new bdd_connect();

	$bdd->connect();

	$request = mysql_query("SELECT id_projet, nom_projet FROM FEDER")or die (mysql_error());

while ($request1 = mysql_fecth_row($request)) {

 	echo '<option value="'.$request1[0].'">'.$request1[1].'</option>';

}

?>
</select> <br/><br/>
			  <label>Date du </label><input type="Text" name="date1" value="" size="20"> <a href="javascript:cal1.popup();"><img src="image/calendrier/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour obtenir la date."></a>
         &nbsp au <input type="Text" name="date2" value="" size="20"> <a href="javascript:cal2.popup();"><img src="image/calendrier/cal.gif" width="16" height="16" border="0" alt="Cliquez ici pour obtenir la date."></a>
        <br/><br/>
			  <label>Lieu : </label><input type="text" name="lieu" /><br/><br/>
			  <label>Motif : </label><input type="text" name="motif" size="54"/><br/><br/>
			  <label>Heure de début : </label><select name="heure1"><!--génération de la liste déroulante pour les heures-->
				<option value="06H" selected="selected">6</option><!--valeur de l'affichage par défaut grace au selected-->
				<option value="07H">7</option>
				<option value="08H">8</option>
				<option value="09H">9</option>
				<option value="10H">10</option>
				<option value="11H" >11</option>
				<option value="12H">12</option>
				<option value="13H">13</option>
				<option value="14H">14</option>
				<option value="15H">15</option>
				<option value="16H">16</option>
				<option value="17H">17</option>
				<option value="18H">18</option>
				<option value="19H">19</option>
				<option value="20H">20</option>
				<option value="21H">21</option>
			</select> H <select name="minute1"><!--génération de la liste déroulante pour les minutes-->
				<option value="00" selected="selected">00</option> <!--valeur de l'affichage par défaut grace au selected-->
				<option value="15">15</option>
				<option value="30">30</option>
				<option value="45">45</option>
			</select> &nbsp &nbsp &nbsp Heure de fin : <select name="heure2"><!--génération de la liste déroulante pour les heures-->
				<option value="06H" selected="selected">6</option><!--valeur de l'affichage par défaut grace au selected-->
				<option value="07H">7</option>
				<option value="08H">8</option>
				<option value="09H">9</option>
				<option value="10H">10</option>
				<option value="11H" >11</option>
				<option value="12H">12</option>
				<option value="13H">13</option>
				<option value="14H">14</option>
				<option value="15H">15</option>
				<option value="16H">16</option>
				<option value="17H">17</option>
				<option value="18H">18</option>
				<option value="19H">19</option>
				<option value="20H">20</option>
				<option value="21H">21</option>
			</select> H <select name="minute2"><!--génération de la liste déroulante pour les minutes-->
				<option value="00" selected="selected">00</option><!--valeur de l'affichage par défaut grace au selected-->
				<option value="15">15</option>
				<option value="30">30</option>
				<option value="45">45</option>
			</select> du rendez-vous<br/><br/>
			<script language="JavaScript">
			<!-- // create calendar object(s) just after form tag closed
				 // specify form element as the only parameter (document.forms['formname'].elements['inputname']);
				 // note: you can have as many calendar objects as you need for your application
				var cal1 = new calendar1(document.forms['formulaire'].elements['date1']);
				cal1.year_scroll = true;
				cal1.time_comp = false;
				var cal2 = new calendar1(document.forms['formulaire'].elements['date2']);
				cal2.year_scroll = true;
				cal2.time_comp = false;
	
			//-->
			</script>		
      </p>
			<a href="#" alt="suivant" id="suivant" onclick="
			savemission('mission','');
			imagedebase();
			changimage('a2','onglet_frais3.png');
			cacher('d1');
			effect_1 ==Effect.SlideDown('d2',{duration:1.0}); 
			return false;" /></a> 
			
			<a href="#" alt="terminer" id="fin" onclick="
			imagedebase();
			changimage('a4','onglet_recapitulatif3.png');
		    cacher('d3');
			resultat();
		    effect_1 ==Effect.SlideDown('d4',{duration:1.0}); 
		    return false;
			" /></a>
		</div>
		<div id="d2" style="display:none;">
			<div id="hotel">
			<b>Hôtel : </b><img src="image/bouton_plus.png" alt="rajouter une ligne" id="plus" onclick="crea_hotel()" /><br/><br/>
				Province<input type="radio" name="prov1" id="prov1" onclick="hotel('1'); savemission('hotel', '1');"/>
				Paris<input type="radio" name="prov1"  id ="paris1"	onclick="hotel('1'); savemission('hotel', '1');"/>  
				Journée<input type="checkbox" name="journee1"  onclick="hotel('1'); savemission('hotel', '1');"/><br/>
                Prix : <input type="text" name="prix_hotel1" onclick="hotel('1');" onblur="verif_hotel('1'); savemission('hotel', '1');"/> <br/><br/>
				
				Province<input type="radio" name="prov2" id="prov2" onclick="hotel('2'); savemission('hotel', '2');"/>
				Paris<input type="radio" name="prov2" id ="paris2" onclick="hotel('2'); savemission('hotel', '2');"/>  
				Journée<input type="checkbox" name="journee2"  onclick="hotel('2'); savemission('hotel', '2');"/><br/>
                Prix : <input type="text" name="prix_hotel2" onclick="hotel('2');" onblur="verif_hotel('2'); savemission('hotel', '2');"/><br/><br/>
			</div>
			<div id="repas">
			<b>Repas : </b><img src="image/bouton_plus.png" alt="rajouter une ligne" id="plus" onclick="crea_repas('repas', 'prix_repas', 'Hors département', 'hdep'); savemission('hotel', '3');" /><br/><br/>
				Prix : <input type="text" name="prix_repas3" onblur="verif_repas(this, 'hdep3'); savemission('repas', '3');"/> Hors département<input type="checkbox" name="hdep3"  onclick="repasvalue('prix_repas3'); savemission('repas', '3');"/><br/><br/>
				Prix : <input type="text" name="prix_repas4" onblur="verif_repas(this, 'hdep4'); savemission('repas', '4');"/> Hors département<input type="checkbox" name="hdep4"  onclick="repasvalue('prix_repas4'); savemission('repas', '4');"/><br/><br/>
			</div>
			<a href="#" alt="suivant" id="suivant" onclick="
			imagedebase();
			changimage('a3','onglet_trajet3.png');
			cacher('d2');
			effect_1 ==Effect.SlideDown('d3',{duration:1.0}); 
			return false;" /></a>
			<a href="#" alt="terminer" id="fin" onclick="
			imagedebase();
			changimage('a4','onglet_recapitulatif3.png');
		  cacher('d3');
		  resultat();
		  effect_1 ==Effect.SlideDown('d4',{duration:1.0}); 
	  	return false;
		" /></a>
		</div>
		
		
				
		<div id="d3" style="display:none;">
			<div id="cible">

      <b>Mission à destination de <?$_GET['lieu']?></b><br/><br/>
		    Transport : &nbsp &nbsp &nbsp &nbsp &nbsp Km : &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp Péage/Billet:  &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp Parking : <br/><br/>
			<select name="transport1" id="transport" onblur="savetransport('1');" onchange = "verift('1');" >
				<option value="Train">Train</option>
				<option value="Avion">Avion</option>
				<option value="Bateau">Bateau</option>
				<option value="Metro/Bus">Métro/Bus</option>
				<option value="Taxi">Taxi</option>
				<option value="1" selected="selected">Voiture perso</option>
				<option value="sct">Voiture sct</option>
			</select>				    
			
			&nbsp <input type="text" name="km1" onblur="savetransport('1');" />
			&nbsp <input type="text" name="pg1" value = '0' onclick="effacer(this);" onblur="savetransport('1');" />
			&nbsp <input type="text" name="pk1" value = '0' onclick="effacer(this);" onblur="savetransport('1');" />
			   
			   <br/><br/>
		    <select name="transport2" id="transport" onblur="savetransport('2');" onchange = "verift('2');" >
				<option value="Train">Train</option>
				<option value="Avion">Avion</option>
				<option value="Bateau">Bateau</option>
				<option value="Metro/Bus">Métro/Bus</option>
				<option value="Taxi">Taxi</option>
				<option value="1" selected="selected">Voiture perso</option>
				<option value="sct" >Voiture sct</option>
			</select>
			
			&nbsp <input type="text" name="km2" onblur="savetransport('2');" />
			&nbsp <input type="text" name="pg2" value = '0' onclick="effacer(this);" onblur="savetransport('2');" />
			&nbsp <input type="text" name="pk2" value = '0' onclick="effacer(this);" onblur="savetransport('2');" /> &nbsp <img src="image/bouton_plus.png" alt="rajouter une ligne" id="plus" onclick="creation_select('cible');"  />
			
			   <br/><br/>
			</div>
			<a href="#" alt="suivant" id="suivant" onclick="
			imagedebase();
			changimage('a4','onglet_recapitulatif3.png');
			cacher('d3');
			resultat();
			effect_1 ==Effect.SlideDown('d4',{duration:1.0}); 
			return false;
			" /></a>
			<a href="#" alt="terminer" id="fin" onclick="
			imagedebase();
			changimage('a4','onglet_recapitulatif3.png');
		  cacher('d3');
		  resultat();
		  document.clear('d4');
		  effect_1 ==Effect.SlideDown('d4',{duration:1.0}); 
		  return false;
		  " /></a>
		</div>
</form>


Voilà le principe étant que d1/d2/d3 sont des onglets, les fonctions js dans les bouton n'ont que peu d'importance dans le problème.
A noter que le select isolé dans une page seule accessible via un lien ne récupère rien non plus. ^^'
Et aucune erreur n'est signalée.
Le problème viendrait de la boucle générant les différentes valeurs.
Le fetch_array seul générant bien les résultats attendus quand je le met en dehors du <select>...</select>
Modifié par dubtphp (05 Jun 2008 - 10:24)

<select name="feder">			  
<?php

 	require 'objet/objet_connect.php';

	$bdd = new bdd_connect();

	$bdd->connect();

	$request =  mysql_query("SELECT id_projet, nom_projet FROM FEDER")or die (mysql_error());
	while ($request1 = mysql_fetch_row($request))
	{
	echo '<option value="'.$request1[0].'">'.$request1[1].'</option>';
	}
?>
</select>


Bon ben voilà cela fonctionne, je vois pas encore la nuance entre mon code et le tien heyoan si ce n'est les ' au lieu " dans le name mais après test ça ne change rien.

En tout cas merci à toi.