Liste déroulantr
aycha
-
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
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>
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>
Configuration: Windows XP Firefox 2.0.0.20
3 réponses
-
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. -
bonjour,notre pbme n'est pas encore résolu et j'ai aucune idée sur Ajax et xml.Merci bien d'avance
-
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