Page 1 sur 1
Controle d'une champs aprés appuis sur le clavier
Posté : 03 juin 2009, 23:07
par fabien_14
Bonjour,
J'ai un simple formulaire dans lequel j'ai un champs NOM et URL, je voudrais savoir si il est possible de vérifier si le nom est deja dans une table SQL et pareil pour URL si c'est aussi dans une autre table.
Et d'afficher un div afin de nous afficher les différent résultat ?
Merci de votre aide
Posté : 03 juin 2009, 23:22
par damaskinos
oui c'est possible.
Posté : 03 juin 2009, 23:27
par albat
Plusieurs possibilités :
1. MySQL + JS
Dans ta page formulaire.php, tu précharges les données
enregistrées dans ta base et tu les stockes dans un tableau JS.
Dès que l'internaute entre une valeur, tu la compares à celles
que tu as recopiées de ta table dans la BD vers ton tableau JS.

Agréable pour l'utilisateur

peut être très lourd selon le volume de données et les tests à effectuer
2. Ajax
On déplace le sujet vers le forum idoine ?

Posté : 03 juin 2009, 23:56
par fabien_14
Bonsoir,
Les données peuvent etre lourde a traité effectivement il fraudais déplacer le sujet dans le forum AJAX.
Voici le formulaire :
Code : Tout sélectionner
<form method="post" name="formulaire" >
<p class="double">
<label>Nom </label>
<input type="text" name="nom" >
</p>
<p class="double">
<label>URL :</label>
<textarea rows="5" name="URL" ></textarea>
</p>
</form>
Je souhaiterai faire en sorte qu'en fonction de la personne ecrit le nom apparaisse les résultat pour voir les résultats de la requete a partir de la table TEST
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(200) collate latin1_german2_ci NOT NULL default '',
`URL` text collate latin1_german2_ci NOT NULL,
`adresse` text collate latin1_german2_ci NOT NULL,
PRIMARY KEY (`id`)
) ;
Admettons dans le champs
nom il existe une entrée qui est égal a
Maurice si la personne ecrit
Maurice je voudrais que sa m'affiche dans un DIV toutes les enregistrement ou il y a
maurice comme nom.
Merci de votre aide

Posté : 04 juin 2009, 08:16
par albat
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Javascript, AJAX".
Posté : 04 juin 2009, 19:06
par fabien_14
Bonjour,
Si qlq peux me donner un coup de main

Merci
Posté : 04 juin 2009, 19:56
par thehawk
Je pense que cette article peut t'interesser :
http://www.ajaxdaddy.com/mootools-autocomplete.html
ou encore
http://demos.mootools.net/Request#
ceci est en utilisant un framework
Bye Hawk
Posté : 05 juin 2009, 23:26
par fabien_14
Bonjour,
J'ai regardé et j'ai essayé d'adapter un script qui fonctionne a peu prêt.
Si je met le nom dans le INPUT il me dit que le pseudo est utilisé cependant moi je voudrais que sa m'affiche via un
while ($c=@mysql_fetch_array($result)) { les résultats différent dans le DIV... mais je bloque complètement
Si vous pourriez m'aider
<form method="post" name="formulaire" >
<p class="double">
<label>Nom :</label>
<input type="text" name="nom_orga" onKeyUp="verifnom(this.value)" > </p>
<div id="nombox"></div>
<script type="text/javascript">
function writediv(texte)
{
document.getElementById('nombox').innerHTML = texte;
}
function verifnom(nom_orga)
{
if(nom_orga != '')
{
if(nom_orga.length<2)
writediv('<span style="color:#cc0000"><b>'+nom_orga+' :</b> ce pseudo est trop court</span>');
else if(nom_orga.length>30)
writediv('<span style="color:#cc0000"><b>'+nom_orga+' :</b> ce pseudo est trop long</span>');
else if(texte = file('http://www.site.com/verifnom.php?nomlist='+escape(nom_orga)))
{
if(texte == 1)
writediv('<span style="color:#cc0000"><b>'+nom_orga+' :</b> ce pseudo est deja pris</span>');
else if(texte == 2)
writediv('<span style="color:#1A7917"><b>'+nom_orga+' :</b> ce pseudo est libre</span>');
else
writediv(texte);
}
}
}
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>
Et voici le fichier
verifnom.php
<?php
// CONNECION SQL
mysql_connect("xxxxx", "xxxxx", "xxxxx");
mysql_select_db("xxxxxx");
// VERIFICATION
$aujourdui = date('Y-m-d');
$result = mysql_query("SELECT nom_orga FROM nom WHERE nom_orga = '".$_GET["nomlist"]."' AND (date_fin >= '$aujourdui' OR nodate='1') ORDER BY id DESC LIMIT 1 ");
if(mysql_num_rows($result)>=1)
echo "1";
else
echo "2";
?>
Posté : 07 juin 2009, 11:57
par fabien_14
Bonjour,
J'ai modifié un peu ma requête en mettant l'événement ONBLUR mais je n'arrive pas a afficher le résultat $res dans le INNERHTML...
function writediv(texte)
{
document.getElementById('nombox').innerHTML = texte;
}
function verifnom(nom_orga)
{
if(texte = file('http://www.site.com/verifnom.php?nomlist='+escape(nom_orga)))
{
writediv('<?php echo $res; ?> ');
}
}
Voici le fichier verifnom.php.
Code : Tout sélectionner
<?php
$res ="<ul id=\"navlistm\">";
mysql_connect("xxxxx", "xxxx", "xxxxx");
mysql_select_db("xxxxxxx");
$result = mysql_query("SELECT * FROM nom WHERE nom_orga = '".$_GET["nomlist"]."' ");
while ($c=@mysql_fetch_array($result)) {
$res .= "<li >.$c[nom_orga].<strong>.$c[telo].</strong></a></li>";
}
$res .= "</ul><p class=\"last\"></p></dd></dl></div>";
echo $res;
?>
Merci de votre aide
Posté : 07 juin 2009, 12:23
par micetf
Bonjour,
Je ne sais si ça t'apporteras la solution à tous tes soucis,
mais à première vue il y a au moins un problème dans :
Code : Tout sélectionner
function verifnom(nom_orga)
{
if(texte = file('http://www.site.com/verifnom.php?nomlist='+escape(nom_orga)))
{
writediv('<?php echo $res; ?> ');
}
}
Remplace '<?php echo $res; ?> ' par texte.
En effet,
dans ce script js,
tu n'as pas accès à $res qui n'existe que sur le serveur où s'exécute le script php verifnom.php,
mais en revanche ta requête Ajax te le renvoie et tu le récupères justement dans texte.
Enfin... je ne crois pas dire de bêtises.
Fred
Posté : 07 juin 2009, 14:48
par thehawk
en effet je serais plus d'avis a faire :
Code : Tout sélectionner
function verifnom(nom_orga)
{
var verif = file('http://www.site.com/verifnom.php?nomlist='+escape(nom_orga));
if(texte == verif))
{
writediv(verif);
}
}
J'ai un gros doute : if(texte == verif)) tu fait une vérification sur la source html généré par le fichier verifnom.php, donc pour moi la vérification ne sera jamais atteinte.
Bye Hawk