2013-08-30 57 views
0

我有一个输入的文字,我想,当我需要的是价值,并传递它的URL参数点击一个按钮,这是我到目前为止的代码:通过输入文本参数

<div id="landmark-1" data-landmark-id="1"> 
    <form name ="data"> 
     <label>enter your name :</label> 
     <input type= "text" placeholder="ID" name="ID" value="" style="width:206px;" /> 
     <input type="submit" value="Suivant" onclick="showUser(this.form)" > 
    </form>  
</div> 
<br> 
<div id="txtHint"><b>Person info will be listed here.</b></div> 

,这是我的javascript代码:

<script> 
function showUser(frm) 
{ 
    var str = frm.ID.value; 
    if (str==""){ 
     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; 
     } 
    } 
    xmlhttp.open("GET","http://localhost/filename/page.php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 

,但是当我输入一个名称,它只是增加:在当前页面的URL ID =名字!它不会在我想要的网址发送参数..

+0

尝试:var str = frm.elements ['ID'] .value; – jeff

+0

同样的事情,它通过当前页面的url:?ID = name – neustre

+0

而不是'“http://localhost/filename/page.php?q =”+ str'尝试'“http:// localhost /filename/page.php“+ str' – collapsar

回答

0

更改您的代码从:○nclick="showUser(this.form)"onclick="return showUser(this.form)"

if (str==""){ 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
} 

到 如果(STR == “”){ document.getElementById(“txtHint”)。innerHTML =“”; 返回false; }

即使没有输入ID,您的表格也会被提交。返回false会阻止表单提交。

+0

我已经添加了这些变化,现在我没有得到?id的东西..但它仍然不会发送参数到localhost url?! – neustre

+0

在xmlhttp.send()后添加返回false;因为该页面仍在提交。如果这仍然失败,那么你可能想检查readyState和状态,看看是否有错误发生的PHP文件,你没有捕获。 – jeff

+0

php文件工作正常,但这一个它不会给我tha参数我想要形成输入文本字段!将这,我已经捕获了这个代码:http://www.w3schools.com/php/php_ajax_database.asp – neustre

0

这是修改后的AJAX调用。它比w3schools例子稍微复杂一些,但功能更加完整。首先是AJAX例程:

function AJAX(url, processFunction) { 
    var XHR; 
    try{ 
    // Opera 8.0+, Firefox, Safari/Chrome 
    XHR = new XMLHttpRequest(); 
    }catch (e){ 
    // Internet Explorer Browsers 
    try{ 
     XHR = new ActiveXObject("Msxml2.XMLHTTP"); 
    }catch (e) { 
     try{ 
     XHR = new ActiveXObject("Microsoft.XMLHTTP"); 
     }catch (e){ 
     // Something went wrong 
     alert("Your browser doesn't support AJAX!"); 
     return false; 
     } 
    } 
    } 
    if(XHR.onreadystatechange) { 
    if(XHR.readyState == 4) { 
     if(XHR.status == 200) { 
     //--- we've got the data so process it 
     processFunction(XHR.responseText); 
     } 
     if(XHR.status != "OK") { 
     alert('Error : '+XHR.responseText); 
     } 
    } 
    } 
    //--- open 
    XHR.open('GET', url); // --- url is from the function call 
    //--- send 
    XHR.send(); 
} 

现在将处理返回的数据的函数。在这种情况下,你只是想显示的文字:

function processMyData(data) { 
    document.getElementById("txtHint").innerHTML= data; 
} 

现在的修改showUser功能

function showUser(frm) { 
    var str = frm.ID.value; 
    if (str==""){ 
     document.getElementById("txtHint").innerHTML=""; 
     return false; 
    } else { 
     AJAX("http://localhost/filename/page.php?q="+str, 'processMyData') 
    } 
} 

如果在你的PHP文件应该在警告框出现错误。

如果你的代码仍然没有返回任何东西,也没有错误,我可以想到的唯一的另外一件事就是你不是回显/打印你的AJAX例程的数据来检索你的文本。

+0

,但告诉我在w3schools的例子,我只改变,而不是选择我把一个输入文本的选项!知道他们的第一个例子在我的浏览器中工作得很好! 我做了你的修改,但仍然没有,我不知道也许输入文本有东西,我需要添加或什么..我真的卡住我的作品取决于这个 – neustre

+0

给我发电子邮件您的网页 - 详细信息我的用户页面。 – jeff