2012-04-19 128 views
0

我有一個帶有textfiled變量的ajax代碼。它提醒值,但是當我想在PHP中得到的,它給了我未定義指數的錯誤從Ajax獲取變量到Php

JavaScript代碼

<SCRIPT> 
function go(UserID) { 
var name= encodeURI(document.getElementById('name').value); 
var design= encodeURI(document.getElementById('design').value); 
http.open('get', 'testAjax.php?design='+design+'&name = '+name); 
http.send(null); 
} 
</SCRIPT> 

HTML代碼

<INPUT ID='name' type='text'> 
<INPUT ID='design' type='hidden' value="<?php echo $UserID; ?>"> 
<A href="?process" onclick="javascript:go(<?php echo $UserID; ?>)">Link</A> 

Php代碼

if(isset($_GET['process'])) { 
echo $_GET['design']; 
echo $_GET['name']; 
} 

請讓我知道如何解決它。

+0

指搜索引擎。使用jQuery使事情變得更容易。 – 2012-04-19 02:45:35

+0

這就是你所有的JavaScript代碼?您尚未在此處創建xmlHttpRequest對象。另外'get'應該是大寫'GET'。 – 2012-04-19 02:52:19

+0

你的go()函數沒有返回false;這將使你的PHP腳本的正常請求。這意味着它使請求成爲沒有參數的過程。 (你可以從瀏覽器中的開發者工具中檢查) – scalopus 2012-04-19 02:55:26

回答

0

你有一個你有一個onclick事件的錨標籤。 Onclick事件被觸發時會發送一個ajax請求到testAjax.php? url。

但是,由於您尚未阻止單擊錨標籤的默認行爲,因此只要發送此ajax請求,頁面將重定向至?process,並且因爲$_GET參數您將不會收到任何內容。

假設你有你的ajax正確,請在你的go()函數的末尾添加return false;。另外,因爲在服務器端你有一個條款,如if(isset($_GET['process'])) {,你也應該更新你的ajax網址類似:testAjax.php?process

+0

謝謝Abhinav。 所以如果我只是發送onclick函數的價值,並沒有href,我怎麼能在PHP部分。你能告訴我如何找回在PHP中的價值? – user1328273 2012-04-19 02:58:54

+0

我改變了你所說的話,現在沒有錯誤,但是當我回顯$ _GET ['design']; echo $ _GET ['name']; 雖然當我提醒,它顯示在JavaScript部分 – user1328273 2012-04-19 03:13:10

+0

您的最終ajax網址的文本字段值將如下所示:'testAjax.php?process&design = some_value&name = some_name' ...在此之後,如果您的服務器端PHP是入口'if( isset($ _ GET ['process']){'loop您還將獲得'$ _GET ['design'] =「some_value」和'$ _GET ['name'] =「some_name」的值' – 2012-04-19 03:15:37

0

好吧,我發現可能導致此問題的一些事情。 嘗試:

<script> 
    function go(UserID) { 
     var name= encodeURI(document.getElementById('name').value); 
     var design= encodeURI(document.getElementById('design').value); 
     http.open('get', 'testAjax.php?process&design='+design+'&name='+name); 
     http.send(null); 
    } 
</script> 

<input id='name' type='text' /> 
<input id='design' type='hidden' value="<?=$UserID; ?>" /> 
<a href="#" onclick="javascript:go(<?=$UserID; ?>)">Link</a> 

正如你所看到的,我們刪除了HTML變量「過程」,並使其成爲Ajax調用的一部分。