各位大牛,訊息想問個關於AJAX與PHP的問題,現在碰到這樣的一個情況
我希望前端頁面在點擊某標籤的時候,在下方可以顯示我關於上方點擊的標籤進行關聯的資料,代碼如下
index.php
Suggestions:
js clienthint代碼
var xmlHttpfunction showHint(str){if (str.length==0) { document.getElementById("txtHint").innerHTML="" return }xmlHttp=GetXmlHttpObject()if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url="gethint.php"url=url+"?q="+strurl=url+"&sid="+Math.random()xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true)xmlHttp.send(null)} function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById("txtHint").innerHTML=xmlHttp.responseText } }function GetXmlHttpObject(){var xmlHttp=null;try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); }catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } }return xmlHttp;}
處理頁面代碼gethint.php
因為在處理頁面$hint 是需要傳到前端頁面的,所以我希望在處理頁面將迴圈內容都做好之後傳遞,但是我這樣寫:$hint="for($i=0;$i<2;$i++){......}"; 他卻只會檔字串傳遞。
所以拜託大家有沒有什麼好的辦法解決一下
線上等,謝謝各位了!
回複討論(解決方案)
通過 eval 和 create_function 都可實現
通過 eval 和 create_function 都可實現 謝謝。能舉個例嗎?因為我剛用了eval試了下。不行呢,操作如下
$hint='for($i=0;$i<2;$i++){.....}';
eval("\$hint = \"$hint\";");
$hint='for($i=0;$i<2;$i++){}';eval($hint);echo $i; //2
$hint = 'for($i=0;$i<2;$i++){}';if(2 == eval($hint.' return $i;')) echo 'ok';
$hint = 'for($i=0;$i<2;$i++){}';if(2 == eval($hint.' return $i;')) echo 'ok';
額。還是有點不明白,不好意思,麻煩看下如下代碼:
$hint = 'for($i=0;$i<2;$i++){123}';
if(2 == eval($hint.' return $i;'))
echo 'ok';
我希望顯示兩個層
如果程式寫作
for($i=0;$i<2;$i++){123}
您認為是正確的嗎?
如果程式寫作
for($i=0;$i<2;$i++){123}
您認為是正確的嗎? 額。因為是希望可以迴圈傳遞多個層出去,額額。自己想想也不應該是這麼寫。抱歉
$hint = 'for($i=0;$i<2;$i++){}';if(2 == eval($hint.' return $i;')) echo 'ok'; 額。能指導下嗎?
$hint = 'for($i=0;$i<2;$i++){}';if(2 == eval($hint.' return $i;')) echo 'ok';
已經解決了層迴圈的問題,但是原本層上有的JS動作,通過eval出來就沒有效果了。這是什麼原因呀!
可能是:
標記不配套
id 重名
預先綁定的事件無效