2012-10-16 29 views
0

目前我有一个表单,当用户输入数据时,此代码会调用另一个页面来检查用户名是否正在使用。这是从主要页面的代码调用DB页(test.php的)AJAX,PHP DB查找

<script type="text/javascript"> 
function showHint(str) 
{ 
if (str.length==0) 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 
     if (xmlhttp.responseText.indexOf("green") != -1) { 
      document.getElementById("submit").disabled = false; 
     } else { 
      document.getElementById("submit").disabled = true; 
     } 
    } 
    } 
xmlhttp.open("GET","test.php="+str,true); 
xmlhttp.send(); 
} 
</script> 

我想test.php的它传递的值来改变这种所以当它呼吁test.php的依据是什么表单字段用户正在进入。

这样我可以使用test.php来执行不同的数据库查找取决于用户正在完成的表单字段。

任何人都可以帮忙吗? 谢谢:)

+1

你可以使用一些JavaScript库像jQuery?他们有一个美妙的AJAX功能:http://api.jquery.com/jQuery.ajax/ –

+0

我可以,但我不知道如何:) – MacMan

回答

0

JavaScript jQuery ajax函数的一个例子。此功能可称为磨片上使用id =“myButton的”组件用户点击:

$(document).ready(function() { 
    $('#myButton').click(function() { 

     var myValue = $('#myInput').attr('value'); 

     var request = $.ajax({ 
      url: "test.php", 
      type: "GET", 
      data: { 
       myInput : myValue 
      }, 
      dataType: "json" 
     }); 

     request.done(function(msg) { 
      alert("Request done: " + msg); 
     }); 

     request.fail(function(jqXHR, textStatus) { 
      alert("Request failed: " + textStatus); 
     }); 
    }); 
}); 

有了这个例子中,你可以采取的值从texfield与ID =“myInput”,并用传递GET致电test.php页面。

在test.php的页面,您可以用简单的取值:

$_GET['myInput']; 

只是一个提示:你的test.php必须返回json类型。

+0

谢谢:)我怎么会从多个表单字段调用? – MacMan

+0

我编辑了答案;-) –

+0

再次感谢:) 我目前正在做的是当用户键入到表单字段时进行实时名称检查。 这样做会要求他们输入名称并单击'检查'按钮?任何方式来做它作为一个现场检查? – MacMan