Bonjour,

Je souhaite créer un module facturation en php.

Dans un formulaire, après l'encodage du numéro de client je voudrais que son nom s'affiche automatiquement.

Je pensais utiliser l'évènement onchange sur le numéro du client. Je ne trouve pas d'info sur le net pour ce type d'utilisation.

Celui-ci est-il approprié et quel est la synthaxe pour recharger ma page php ?
Salut,

Pour faire ce que tu souhaites, tu devrais te tourner vers AJAX. Et plus particulièrement JQuery, qui permet de générer ce genre de requêtes très simplement.
Dans l'idée :

1. un champ text
<input type="text" name="numeroClient" onchange="getClient(this.value);" />


2. une fonction javascript
function getClient(codeClient){
  $.ajax({
      url: "getclient.php?code="+codeClient
    }).done(function(data) {
      // remplir le nom du client via le DOM
  });
}


3. une page php de récupération du client
$code = $_GET['code'];
// requête dans la base pour récupérer les données
$query = 'select ...';
//...
$client = array();
$client['nom'] = ...
// ...
// affichage des résultats en JSON (par exemple)
echo json_encode($client);


J'espère avoir répondu à ton besoin.
Merci pour ta réponse Yoleouf mais je préfère rester en php (aucune notion d'ajax Smiley decu
Modifié par phico (22 Mar 2013 - 15:20)
Ok, mais l'AJAX n'est qu'une technique, là je t'ai montré qu'on pouvait l'utiliser avec PHP...
Comme ça je vois une autre solution mais il faudra utiliser du JavaScript de toute façon.

Ce que tu peux faire, c'est :

1. charger toutes les valeurs possibles dans un tableau Javascript :
<script type="text/javascript">
<?php
echo 'var contacts = new Array();';
foreach($contacts as $id => $contact){
  echo 'contacts['.$id.'] = "'.$contact.'"';
}
?>
</script>


2. reprendre le input précédent :
<input type="text" name="numeroClient" onchange="getClient(this.value);" />


3. mettre un champ pour le nom du client
<div id="nomClient"></div>


4. fonction javascript pour récupérer le nom du client en fonction de son code :
function getClient(codeClient){
  var nomClient = contacts[codeClient];
  document.getElementById('inputClientName').innerHTML = nomClient;
}
Merci pour l'info Yoleouf. C'est effectivement une possibilité.

En parcourant le net, je me rends compte que j'essaie de refaire la roue alors que des outils existent.

J'ai ainsi pu décourir la librairie Jquery Autocomplete qui pourrait répondre à mes besoins.

Qu'en penses-tu ?
Oui tu peux utiliser ça Smiley cligne
Mais attention, "autocomplete" est issu de jquery-ui, donc il te faut les deux (jquery + jquery-ui).