2013-08-30 92 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