0

わかりました、私はこの問題を調べましたが、現在使用していない JSON への参照しか見つかりません。数値を含む配列値が渡され、DIV が更新されます。ただし、文字列を渡そうとしても何も起こりません。コードは次のとおりです。

<php> 
$cont = array();
$cont[] = 'yo';
$cont[] = '2';
foreach($cont as $c){
  $statement .= '<button type=\"button\" onclick=\"nFunc('.$c.')\">'.$c.'</button>';
}
</php>
<script>

function nFunc(str)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("POST","test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("p="+str);
}
</script>
<div id="myDiv">Default</div>
{$statement}

IP.Board/IP.Content を介して AJAX でテストを行っていることに注意してください。そのため、{} 内のタグと変数は IP.C エンジンによって解析されます。

このコードは、「yo」と「2」というラベルの付いた 2 つのボタンを出力します。「2」をクリックすると、DIV が正しく更新されます。「よう」をクリックしても何も起こりません。

test.php ファイルは非常に単純です。

<?php
$hello = $_POST['p'];
echo $hello;
?>

事前に助けてくれてありがとう。

4

1 に答える 1

0

HTMLあなたのPHPステートメントからのこの出力は無効です:

<button type=\"button\" onclick=\"nFunc(yo)\">yo</button><button type=\"button\" onclick=\"nFunc(2)\">2</button>

知らせ onclick=\"nFunc(yo)\">

文字列パラメーターが引用符で囲まれていないことを確認してください。また、それらのバックスラッシュは必要ありません。そのため、そのエラーが表示されます。もちろん、数値の場合は発生しません。

$statement .= '<button type=\"button\" onclick=\"nFunc('.$c.')\">'.$c.'</button>';

する必要があります

$statement .= '<button type="button" onclick="nFunc(\''.$c.'\')">'.$c.'</button>';

その修正の後、それは魅力のように機能します。私はちょうどテストしました。

于 2013-03-18T08:11:18.677 に答える