le 14/04/2011 à 15:32
Remplir un input à partir du choix d'une liste deroulante sans recharger la page.
Bonjour à tous
Je suis encore nouveau dans la programmation PHP et j'ai un souci, en effet je voudrais selon le choix d'un élément de ma liste déroulante remplir un input par une requête sans recharger la page, j'ai utilisé la propriété onchange (ligne 180) à la liste spécifiée, à laquelle est associée une fonction, mais elle ne fonctionne pas.
code page principale :
code page 2 ajaxFiche.php (requête) :
J'ai vraiment besoin d'aide, Merci à tous
Je suis encore nouveau dans la programmation PHP et j'ai un souci, en effet je voudrais selon le choix d'un élément de ma liste déroulante remplir un input par une requête sans recharger la page, j'ai utilisé la propriété onchange (ligne 180) à la liste spécifiée, à laquelle est associée une fonction, mais elle ne fonctionne pas.
code page principale :
<?php
// Connection à la BDD
try
{
$bdd = new PDO('mysql:host=localhost;dbname=restaurant', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Gestione del Ristorante</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" type="text/css" href="styleCommande.css" />
</head>
<script type='text/javascript'>
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function change()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
var rst = xhr.responseXML;
document.getElementById('nomCliente').value=rst.getElementsByTagName('nomCliente')[0].firstChild.nodeValue;
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxFiche.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('cliente');
cliente = sel.options[sel.selectedIndex].value;
xhr.send("Cliente="+cliente);
}
</script>
<body>
<!-- Introduction de la date -->
<div id = "date">
<?php
echo $jour = date('D, d M Y').'<br/>';
echo $heure = date('H:i').'<br/>';
?>
</div>
<!-- Ajouter un menu -->
<div id = "menuPrincipal">
<div id="menu">
<a href = "categorie.php"><img src = "Images/categorie.jpg" alt = "" title = "Aggiungere Una Categoria di Menù"/></a>
</div>
<!-- Ajouter un elemento de categorie -->
<div id="elementMenu">
<a href = "elementMenu.php"><img src = "Images/elementMenu.jpg" alt = "" title = "Aggiungere Un Elemento Della categoria"/></a>
</div>
<!-- Ajouter un serveur -->
<div id="serveur">
<a href = "serveur.php"><img src = "Images/serveur.jpg" alt = "" title = "Aggiungere Un Cameriere"/></a>
</div>
<!-- Ajouter une table -->
<div id="table">
<a href = "table.php"><img src = "Images/table.jpg" alt = "" title = "Aggiungere Un Tavolo"/></a>
</div>
<!-- Modifier les données -->
<div id="modifiche">
<a href = "modifiche.php"><img src = "Images/modifiche.gif" alt = "" title = "Modifica Delle Caratteristiche Di Un Elemento"/></a>
</div>
<!-- Recherche -->
<div id="recherche">
<a href = "recherche.php"><img src = "Images/recherche.gif" alt = "" title = "Ricerca"/></a>
</div>
</div>
<!-- Début Du Programme -->
<!-- Choix De La Table, Du Client, Et Du Serveur -->
<form id = "formulaire" name="Formulaire">
<fieldset>
<legend>Ordine Registrato</legend>
<label for = "table">Numero Tavolo :</label>
<select name = "table" tabindex = "10" />
<option value = ""-1">- - - Scegliere Un Tavolo - - -</option><br/>
<?php
$reponse = $bdd -> query('SELECT *
FROM messa
ORDER BY nombre_messa');
while($donnees = $reponse->fetch())
{
?>
<option value = "<?php echo $donnees['nombre_messa'] ;?>"> <?php echo $donnees['nombre_messa']; } ?> </option><br/>
</fieldset>
<fieldset>
<legend></legend>
<label for = "serveur">Nome Cameriere :</label>
<select name = "serveur" id = "serveur2" tabindex = "20" />
<option value = ""-1">- - - Scegliere Cameriere - - -</option><br/>
<?php
$reponse = $bdd -> query('SELECT *
FROM camareros
ORDER BY nombre_camareros');
while($donnees = $reponse->fetch())
{
?>
<option value = "<?php echo $donnees['nombre_camareros'] ;?>"> <?php echo $donnees['nombre_camareros']; } ?> </option><br/>
</fieldset>
<fieldset>
<legend></legend>
<label for = "cliente">Codice Cliente :</label>
<select name = "cliente" onchange = 'change2()' id = "cliente" tabindex = "30" /><br/>
<option value = ""-1">- - - Scegliere Un Cliente - - -</option><br/>
<?php
$reponse = $bdd -> query('SELECT *
FROM cliente
ORDER BY cognNome');
while($donnees = $reponse->fetch())
{
?>
<option value = "<?php echo $donnees['id_badge'] ;?>"> <?php echo $donnees['id_badge']; } ?> </option><br/>
<label for="nomCliente">Quantità :</label>
<input type="text" name="nomCliente" value = "" id="nomCliente" size="10" tabindex="50" /><br />
</fieldset>
<fieldset>
<legend></legend>
<label for = "piatto">Codice Degli Elementi:</label>
<select name = "piatto" id = "piatto" tabindex = "40" /><br/>
<option value = ""-1">- - - Scegliere gli elementi - - -</option><br/>
<?php
$reponse = $bdd -> query('SELECT *
FROM elementocategoria') ;
while($donnees = $reponse->fetch())
{
?>
<option value = "<?php echo $donnees['id_elementoCategoria'] ;?>"> <?php echo $donnees['id_elementoCategoria']; } ?> </option><br/>
</fieldset>
<fieldset>
<label for="quantite">Quantità :</label>
<input class = "quantite" type="text" name="quantite" value = "1" id="quantite" size="10" tabindex="50" /><br />
<input class = "position_bouton" type="button" value="ADD" onClick = "ControleVide()"/>
<input class = "remise_a_zero" type="reset" value = "RESET" />
</fieldset>
</form>
<!-- Tableau d'insertion de la commande -->
<table id = "tableau">
<caption>Ordine Registrato</caption>
<thead> <!-- En-tête du tableau -->
<tr>
<th>Numero</th>
<th>Description De La Commande</th>
<th>Quantità</th>
<th>Precio</th>
</tr>
</thead>
<tbody> <!-- Corps du tableau -->
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>TOTAL</td>
<td colspan = "3"></td>
</tr>
</tbody>
</table>
<div id="footer" class="fluid">
Copyright © 2011 Your Website. All rights reserved. Design by <a href="http://www.generalwork.org/">Oficina Informatica</a>.
</div>
<script type="text/javascript" src="styleCommande.js"></script>
</body>
</html>
code page 2 ajaxFiche.php (requête) :
<?php
header("Content-type:text/xml");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo "<racine>";
if(isset($_POST["cliente"]))
{
$connect= mysql_connect("localhost", "root","") or die ("Impossible de se connecter: ".mysql_error());
mysql_select_db("restaurant") or die("Base de données inaccessible : ".mysql_error($connect));
$res = mysql_query("SELECT * FROM cliente WHERE id_badge='".$_POST["cliente"]."' ");
while($row = mysql_fetch_assoc($res))
{
echo '<inputNom>';
echo ".$row["cognNome"].";
echo '</inputNom>';
}
}
echo "</racine>";
?>
J'ai vraiment besoin d'aide, Merci à tous