Liste déroulantr

Fermé
aycha - 21 août 2009 à 11:59
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 22 août 2009 à 11:34
Bonjour à tous
voilà lj'ai crée en php une liste déroulante de codes de services à partir de la base et je voudrais, après une clique,afficher sur la même page les autres données relatives à ce service.merci bien
voici le code:

<?php
//connection au serveur
$connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');

//sélection de la base de données:
$db = mysql_select_db( "gestion_stock" ) or die('base introuvable');
?>
<form id="form1" name="form1" method="POST" action="">

<?php
$cde="select * from service order by 'desig_sce'";
$reqt=mysql_query($cde) or die ('erreur sql'.$cde.'<br>'.mysql_error());
?>
<label></label>
<pre> <select name="selectcde_sce"> <option> </option> <?php while($sql=mysql_fetch_object($reqt)){?> <option> <?php echo( $sql->cde_sce);}?></option> </select>
</pre>
<pre> <?php
$cde_sce = $_GET['cde_sce'];
$req="select desig_sce from service where cde_sce='$cde_sce'";
$desig = mysql_query($req) or die ('erreur sql'.$req.'<br>'.mysql_error());
while($result=mysql_fetch_object($desig))
{?> <input name="desig_sce" type ="text" size="37" value="<?php echo( $result->desig_sce);?>" />
</pre>
<pre> <input name="type_sce" type ="text" size="37" value="<?php echo( $result->type_sce);?>" /> <?php
}
?>
</pre>
</form>
A voir également:

3 réponses

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
21 août 2009 à 12:32
Orientes-toi vers de l'AJAX si tu as beaucoup de services.
Si tu n'as que 2-3 services, alors affiches toutes les données de tous les services mais masques-les. Ensuite, tu devra les afficher en Javascript.

Je te conseil ce tuto pour apprendre l'AJAX.
Pour la deuxième solution, voilà un script que je viens de pondre.
0
Merci bcp avion-f16.
Je vais essayer ta proposition, si j'ai un problème je vais te conacter.
0
bonjour,notre pbme n'est pas encore résolu et j'ai aucune idée sur Ajax et xml.Merci bien d'avance
0
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
22 août 2009 à 11:34
Pour l'AJAX, c'est très simple. Créer une page services-ajax.php qui ne contient que du PHP.
<?php
// Fait les opérations nécessaire pour retourner la description du service demadné 
// (contenu dans $_POST['service'];)
// Voici l'exemple que j'ai fais pour tester :
if($_POST['service'] == 'html') {
	echo 'Nous développons pour vous un site Web totalement fonctionnel.<br/><a href="#">Plus d\'info</a>';
}
elseif($_POST['service'] == 'css') {
	echo 'Nous pouvons réaliser votre design au prix le plus bas.<br/><a href="#">Plus d\'info</a>';
}
elseif($_POST['service'] == 'php') {
	echo 'Nos développeurs peuvent créer un site Web intéractif avec espace d\'administration, système de news, ... ou une application Web.<br/><a href="#">Plus d\'info</a>';
}
elseif($_POST['service'] == '--') {
	echo '';
}
else {
	echo 'error';
}
?>


Dans ta page HTML, place ce script entre <head> et </head>
<script type="text/javascript">
function afficherService() {
	var service = document.getElementById('service').value;
	var xhr = null;

	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return;
	}
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
			document.getElementById('info-service').innerHTML = xhr.responseText;
		}
	};
	xhr.open("POST", "services-ajax.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
	xhr.send("service=" + service);
	
	return false;
}
</script>


Ton formulaire :
<form method="post" action="" onsubmit="return afficherService();">
	<fieldset>
		<legend>Nos services</legend>
		
		<p>
			<label for="service">Service :</label>
			<select name="service" id="service" onchange="afficherService();">
				<!-- Le contenu de la liste, peut-être généré par PHP -->
				<option value="--">--</option>
				<option value="html">HTML</option>
				<option value="css">CSS</option>
				<option value="php">PHP</option>
			</select>
		</p>
		<p>
			<input type="submit" value="Plus d'info" />
		</p>
	</fieldset>
</form>
<!-- Tu peux le personnalisé comme tu veux mais laisse le onchange sur select, onsubmit sur form, et l'id sur le select -->


Pour finir, il te faut un div/p ayant comme id 'info-service'.
Si tu veux télécharger mon exemple : Télécharger
0