我有三個div
s保存在array
作爲simple_html_dom
的對象。我需要點擊一個按鈕來更改其中兩個CSS屬性。這很簡單,但是我還需要在服務器端的PHP腳本中對CSS屬性(在存儲在上述數組中的simple_html_dom對象中)進行更改。
所以我從我的網絡搜索算出我需要AJAX爲此。所以,我讀了this tutorial,和我下面this example,並且做這樣的事情:
在客戶端:
function xyz(var divIdOne, var divIdTwo) {
document.getElementById(params.divIdOne).style.display = "none";
document.getElementById(params.divIdTwo).style.display = "block";
document.getElementById(params.divIdTwo).style.border = "5px solid red";
var xmlhttp;
if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest();}
else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
xmlhttp.open("GET","myfile.php?pass_back="+"pass_back",true);
xmlhttp.send();
}
在服務器端:
foreach($_REQUEST as $requestkey => $requestvalue) {
echo $requestkey.': '.$requestvalue;
}
if (array_key_exists('pass_back', $_REQUEST)) {
foreach ($array_of_divs as $div) {
if ($div->id=$divIdOne) {
$div->style='display:none';
} else if ($div->id=$divIdTwo) {
$div->style='display:block';
}
}
} else {echo 'FALSE!';}
第一foreach loop
打印其他變量但不打印pass_back
。下一個if
塊根本不執行。執行else
塊。這意味着$_REQUEST
顯然不包含pass_back。任何人都可以指出爲什麼,或者我做錯了什麼?
如果您使用$ _GET而不是$ _REQUEST,它會工作嗎? – 2014-09-21 17:49:53
@MarceloRibeiro不! – Solace 2014-09-21 17:51:07
您是否試圖直接在瀏覽器中訪問url,以確保它不是ajax調用?即直接訪問/myfile.php?pass_back=pass_back?你如何檢查PHP腳本正在打印什麼? – 2014-09-21 17:55:04