2

PHP の echo ステートメントで JavaScript 関数を使用しようとしています。showme および onclick 関数が使用されており、showme 関数に値を渡す必要があります。

以下のコードは機能しません。

 echo"
  <ul>
  <li><a href='javascript:void(0);' onclick='showme('Test','','10.70725','-61.55391','','Tester');' >$id</a></li>
</ul>
  ";

これを修正するにはどうすればよいですか?

4

8 に答える 8

8
echo"
  <ul>
  <li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a></li>
</ul>
  ";
于 2012-11-01T05:07:49.617 に答える
5

だからPHPを使ってあまりエコーしないでください。単純にこのように"して、あなたのshowme()

<ul>
  <li>
    <a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $id; ?></a>
  </li>
</ul>

編集:あなたが言ったように、whileループでこれを実行しています。このようにすることができます

データベースからデータを抽出していると思います

<?php
  while($blah = mysqli_fetch_array($fetch_blah)) {
?>
<!--HTML Part Goes Here-->
<ul>
  <li>
    <a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $blah['id']; ?></a>
  </li>
</ul>
<?php
}
?>
于 2012-11-01T05:08:41.583 に答える
2

\" \"これで十分です、あなたのエコーを追加してください:

echo"
  <ul>
  <li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a>          </li>
 </ul>
  ";
于 2012-11-01T05:12:33.513 に答える
1

二重引用符をエスケープしてください。

 echo "
  <ul>
  <li><a href=\"javascript:void(0);\" onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\" >$id</a></li>
</ul>
  ";
于 2012-11-01T05:13:14.313 に答える
0

エスケープ文字/エスケープ シーケンスを確認する [参照 : http://php.net/manual/en/regexp.reference.escape.php ]

<li><a href='javascript:void(0);' onclick=\"showme('Test','','10.70725','-61.55391','','Tester');\">$id</a></li>

二重引用符を使用するには、エスケープ文字 \" を使用します。結果は -> " になります。

他の回答で示唆されているように、html スニペット全体ではなく $id を単純にエコーアウトします

于 2012-11-01T05:14:28.287 に答える
0
echo " ...
onclick="showme('Test','','10.70725','-61.55391','','Tester');"><?php echo $id; ?></a>
...";
于 2012-11-01T05:15:21.733 に答える
0

アポストロフィの代わりに html で引用符を使用してみてください。

$result =<<<TSTSTR
<ul>
<li>
<a href="javascript:void(0);' onclick='showme('Test','','10.70725','-61.55391','','Tester');'">$id</a>
</li>
</ul>
TSTSTR;

echo $result;
于 2012-11-01T05:16:29.770 に答える
0

読みやすくするために、PHP を終了して HTML を表示してみてください ( を使用echoして表示するのではなく):

?>

<ul>
    <li>
        <a href="javascript:void(0);" onclick="showme('Test','','10.70725','-61.55391','','Tester');" ><?=$id;?></a>
    </li>
</ul>

<?php

これにより、元のコードの引用符エスケープの問題が修正され、読みやすくなります。

于 2012-11-01T05:09:34.623 に答える