關於變數與迴圈語句的問題

來源:互聯網
上載者:User
各位大牛,訊息想問個關於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 重名
預先綁定的事件無效

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.