$.post pour afficher le resultat d'une requête sql
Bonjour,
J'aimerais afficher une suggestion de modification lors de la création d'une nouvelle société dans ma base mysql après avoir vérifié si celle-ci était déjà présente dans ma base.
Lorsqu'on quitte le focus du premier input texte, j'affiche un div avec les sociétés déjà présentent incluant un lien pour la page de modification.
Rien ne fonction... Une petite idée ? :roll:
Voici mon code:
le formulaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <form id="aartisans" action="artisans-add.php" method="post">
<fieldset>
<label for="artisan_societe_name">Nom de la Société de l artisan</label>
<input id="artisan_societe_name" type="texte" name="societe_name" value="<?php echo $artisan_societe_name; ?>" /><br />
<div id="suggestionArtisan" style="display: none;"></div>
<label for="artisan_firstname">Prénom</label>
<input id="artisan_firstname" type="texte" name="firstname" value="<?php echo $artisan_firstname; ?>" /><br />
<label for="artisan_name">Nom</label>
<input id="artisan_name" type="texte" name="name" value="<?php echo $artisan_name; ?>" /><br />
<input type="hidden" name="id" value="<?php echo $artisan_id; ?>" />
</fieldset>
<p><input id="submitArtisan" type="submit" name="submitArtisan" value="Enregistrer" /> <input type="submit" name="cancel" value="Annuler" /></p>
</form> |
Le JS:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <SCRIPT LANGUAGE="JavaScript">
function lookupArtisan(artisan_siciete_name) {
if(artisan_siciete_name.length == 0) { // si le champs txte est vide
$('div#suggestionArtisan').hide(); // on cache les suggestions
} else { // sinon
$.post("js/ajax/verifArtisan.php", {queryString: ""+artisan_siciete_name+""}, function(data){ // on envoie la valeur du champ texte dans la variable post queryString au fichier verifArtisan.php
if(data.length >0) {
$('div#suggestionArtisan').show(); // si il y a un retour, on affiche le div
$('div#suggestionArtisan').html(data); // et on remplit les données html
}
});
}
}
$(document).ready( function () { // lorsque la page est entierement chargée
$("input#artisan_siciete_name").blur( function() { // si on quitte le focus
lookupArtisan($(this).val())
});
});
// End -->
</script> |
Le fichier verfifArtisan.php:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| <?php
if(isset($_POST['queryString']) && $_POST['queryString'] != '')
{
$queryString = addslashes(trim($_POST['queryString']));
try
{
$pdo_options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
$bdd = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASSWORD, $pdo_options);
$req = $bdd->prepare("SELECT * FROM artisans WHERE artisan_societe_name = :societe_name");
$req => execute(array('societe_name' => $queryString));
$req->setFetchMode(PDO::FETCH_OBJ);
$nbsoc = count($req);
$i = 0;
if($nbsoc > 0)
{
$soc = array();
echo '<div class="suggestions">';
if($nbsoc == 1)
{
echo '<strong>L\'artisan suivant est déjà enregistré :</strong>';
}
else
{
echo '<strong>Les artisans suivants sont déjà enregistrés :</strong>';
}
while ($line = $req->fetch() )
{
$soc[$i] = = array('id' => $line->artisan_id,
'date' => $line->artisan_timestamp,
'lastupdate' => $line->artisan_lastupdate,
'type' => $line->artisan_type,
'societe_name' => $line->artisan_societe_name,
'firstname' => $line->artisan_firstname,
'name' => $line->artisan_name,
'adresse' => $line->artisan_adresse,
'cp' => $line->artisan_cp,
'ville' => $line->artisan_ville,
'gsm' => $line->artisan_gsm,
'tel' => $line->artisan_tel,
'email' => $line->artisan_email,
'siret' => $line->artisan_siret,
'condition_commerciale' => $line->artisan_condition_commerciale,
'type_travaux' => $line->artisan_type_travaux,
'classement' => $line->artisan_classement,
'commentaire' => $line->artisan_commentaire,
'courtier' => $line->artisan_courtier,
'dossier' => $line->artisan_dossier,
'zonegeo' => $line->artisan_zonegeo);
echo '<a href="artisans-modif.php?modif='.$soc[$i]['id'].'" title="modifier l\artisan existant">';
echo '<p>';
echo '<strong>'.$soc[$i]['societe_name'].'</strong><br />';
echo $soc[$i]['firsname'].' '.$soc[$i]['name'];
echo $soc[$i]['adresse'].' | '.$soc[$i]['cp'].' | '.$soc[$i]['ville'];
echo '</p>';
echo '</a>';
$i++;
}
$req->closeCursor();
echo '</div>';
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
}
?> |