Grazie mille dementialsite
ieri ero proprio curioso di capire come fare ma visto che non arrivavano risposte ho navigando tantissimo su google e alla fine grazie a delle guide ero arrivato a questo:
javascript.js
Codice HTML:
function verifica(tipo) {
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200) {
if(ajax.responseText == "disponibile") {
document.getElementById('img_ver_'+tipo).alt = "Su questo server è disponibile";
document.getElementById('img_ver_'+tipo).src = "inc/img/icon_ok.gif";
} else {
document.getElementById('img_ver_'+tipo).alt = "Su questo server non è disponibile";
document.getElementById('img_ver_'+tipo).src = "inc/img/icon_ko.gif";
}
} else {
document.getElementById('img_ver_'+tipo).src = "inc/img/wait.gif";
document.getElementById('img_ver_'+tipo).style.display = "block";
}
}
ajax.open("get","verifica.php?server="+document.getElementById('server').value+"&tipo="+tipo+"&valore="+document.getElementById(tipo).value,true);
ajax.send(null);
}
verifica.php
Codice PHP:
<?php
include("/membri/enkairas/inc/function.php");
Db($db);
$server=htmlentities(mysql_real_escape_string($_GET['server']));
$tipo=htmlentities(mysql_real_escape_string($_GET['tipo']));
$value=htmlentities(mysql_real_escape_string($_GET['value']));
if($tipo == "user") { $elemento_tab="username"; } else { $elemento_tab="email"; }
$query="SELECT * from ".$server."_user WHERE ".$elemento_tab." = '$value'";
$risultato=mysql_query($query);
$num_righe=mysql_num_rows($risultato);
if(!$num_righe) {
echo "disponibile";
}
?>
e il form
Codice HTML:
<div align="center">
<fieldset style="height:267px; width:260px;">
<legend>Registrazione</legend>
<form name="form" method="post">
<input type="hidden" name="reg">
<table width="260" border="0">
<tr>
<td width="69">Username:</td>
<td width="144" valign="middle"><input id="user" name="user" type="text" onkeyup="conferma(this,4,10);" onchange="conferma(this,4,10);verifica('user');" /></td>
<td width="33" valign="middle"><img id="img_ver_user" style="display:none;" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input id="pass" name="pass" type="password" onkeyup="conferma(this,4,10);" onchange="conferma(this,4,10);"></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td>Conferma:</td>
<td><input id="ver_pass" name="ver_pass" type="password" onkeyup="conferma(this,4,10,true);" onchange="conferma(this,4,10,true);"></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td>email:</td>
<td><input id="email" name="email" type="text" onkeyup="conferma(this,6,30,false,true);" onchange="conferma(this,6,30,false,true);verifica('email');"></td>
<td><img style="display:none;" id="img_ver_email" /></td>
</tr>
<tr>
<td>Server:</td>
<td><select id="server" name="server"><option value="s1" selected="selected">Mondo 1</option></select></td>
<td><img style="display:none;"/></td>
</tr>
<tr>
<td height="26" colspan="3" align="center"><input type="button" value="Invia" onclick="controllo_registrazione()"></td>
</tr>
</table>
</form>
</fieldset>
</div>
solo che c'è un problema in ogni caso sia che l'user sia disponibile o che non sia disponibile l'icona diventa verde e se provo a mettere in un alert ajax.responseText mi esce un allert con la scritta disponibile
viene da pensare che il php è sbagliato ma non riesco a capire dove
Mi potete aiutare?
grazie mille in anticipo