変数とループ文に関する質問

WBOY
リリース: 2016-06-23 14:26:11
オリジナル
842 人が閲覧しました

専門家の皆様、AJAX と PHP について質問したいのですが、現在このような状況に遭遇しています。フロントエンド ページで特定のラベルをクリックすると、クリックされたラベルの関連付けに関する情報が上に表示されることを願っています。コードは以下の通りです
index.php

<html><head><script src="clienthint.js"></script> </head><body><form> First Name:<?php            	echo "<a>";                	echo "<i class=\"dapei_partleft\"></i>";                    echo "<span class=\"dapei_partmiddle\" title='teswt' name='test'  onclick=\"showHint(1)\">test</span>";                    echo "<i class=\"dapei_partright\"></i>";               echo " </a>";            	echo "<a>";                	echo "<i class=\"dapei_partleft\"></i>";                    echo "<span class=\"dapei_partmiddle\" title='teswt1' name='test1'  onclick=\"showHint(2)\">test</span>";                    echo "<i class=\"dapei_partright\"></i>";               echo " </a>";?></form><p>Suggestions: <span id="txtHint"></span></p></body></html>
ログイン後にコピー

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
<?php $q=$_GET["q"];//$select ="select * from test where cid='$q'";$hint="for($i=0;$i<2;$i++){......}";//Set output to "no suggestion" if no hint were found//or to the correct valuesif ($hint == ""){$response="no suggestion";}else{$response=$hint;}//output the responseecho $response;?>
ログイン後にコピー

ページの処理時にフロントエンドページに$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++){

123
} ';
if (2 == eval($hint.' return $i;'))
echo 'ok';
2つのレイヤーを表示したい

for($i=0;$) i<2;$i++ ){
123
}
それは正しいと思いますか?

プログラムが
for($i=0;$i<2;$i++){

123
} のように書かれている場合
それは正しいと思いますか? 額。複数のレイヤーをループで渡したいと考えているからです。自分で考えてみれば、こんなこと書くべきではない。ごめんなさい

うーん。何か指導してもらえますか?

$hint='for($i=0;$i<2;$i++){}';eval($hint);echo $i; //2
ログイン後にコピー

レイヤーループの問題は解決されましたが、レイヤー上の元の JS アクションは eval を介しても効果がありません。その理由は何でしょうか!

次の可能性があります:

タグが一致しません
ID が同じ名前です

事前バインドされたイベントが無効です



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!