[AJAX] vérification champs dispo bdd (requete multicritére)
Bonjour,
J'ai créé un formulaire avec un champ que je vérifie en Ajax (connexion a la bdd et vérification de la disponibilité du champ).
Au départ ma requete etait simple mais au vue des rectifications apportées au formulaire elle devient plus compliquée j'ai tenté de modifier ma requete mais apparament sa ne marche pas.
voici une partie du formulaire :
form.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <tr>
<td><b>- Statut du corpus </b></td>
<td><select name="Statut_corpus">
<option value="">---Sélectionnez---</option>
<option value="Transcrit">Transcrit</option>
<option value="Verifie_Non Anonymise">Verifié - Non Anonymisé</option>
<option value="Verifie_Anonymise">Vérifié - Anonymisé</option>
</select></td>
</tr>
<tr>
<td>Nom du dossier contenant le corpus informatisé (identifiant) :</td>
<td><input type="text" size="50" name="NomFichierSource"
onblur="req_NomFichierSource(this.value);"> <span
id="NomFichierSource_check"></span></td>
</tr> |
mon champs NomFichierSource est vérifié et cela fonctionne
cependant je voudrai prendre en compte le premier champs Statut_corpus.
en sql cela se traduirai de cette facon :
mysql_query("select * from header_tei where NomFichierSource='".$NomFichierSource."' and Statut_corpus='".$Statut_corpus."'");
mon code ajax est :
verifDispo.js
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
| // ce code va vérifier la disponibilité du Nom de fichier SOURCE
var bNomFichierSource = false;
function req_NomFichierSource(NomFichierSource) {
//XMLHttpRequest est supporté par Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox, Netscape 7
if(document.all) var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); //Internet Explorer
else var XhrObj = new XMLHttpRequest(); //Mozilla
content = document.getElementById("NomFichierSource_check"); //zone d'affichage
XhrObj.open("POST", "../verification/verif_NomFichierSource.php");
//XhrObj.open("POST", "verif_NomFichierSource.php", false);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200) {
if (XhrObj.responseText == 'OK') {
content.innerHTML='<img src="../images/accepter.png" alt=""/>OK';
bNomFichierSource = true; // ok nouveau pseudo
} else {
content.innerHTML='<img src="../images/refuser.png" alt=""/>Existe';
bNomFichierSource = false; // erreur pseudo déjà existant
}
}
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send('p='+NomFichierSource);
}
function testChamps(f) {
// bNomFichierSource = false; on va revalider le champ
// req_NomFichierSource(f.NomFichierSource.value);
if (!bNomFichierSource) {
alert('Erreur Nom Fichier Source');
return false;
}
return true;
} |
verif_NomFichierSource.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
include("../bdd/connection.php");
$NomFichierSource = htmlentities(addslashes($_POST['p']));
if (!empty($NomFichierSource)) {
$res = mysql_query("select * from header_tei where NomFichierSource='".$NomFichierSource."'");
echo (($row = mysql_fetch_array($res)) ? 'FAIL' : 'OK');
}
?> |
ce que j'ai actuellement : si NomFichierSource existe dans la bdd il me le signale
ce que je voudrai : si NomFichierSource existe avec le même statutCorpus alors je veux une alerte ajax; par conséquent il peut y avoir deux fichiers avec le meme nom mais le statut sera différent.
comme je disai jai tenté de modifier la requete dans le fichier verif_NomFichierSource.js mais je pense qu'il faut apporter d'autre modif au code.
merci pour votre aide