ハイパーリンクを使用しているときに、配列から別の確認テキストを表示しようとすると問題が発生します。テキストは常に、配列内の最後の確認テキストからのものになります。このフォーラムで関数でfunction()を使用した2つの例を見ましたが、例を表示してもこれを機能させることができませんでした。
これが私のコードです:
echo '
<script type="text/javascript">
function getDetails(message)
{
if (confirm(message))
return true;
else
{
var links = document.getElementsByTagName("a");
for(i=0;i<links.length;i++)
links[i].href = item_NoLink;
}
}
</script>';
foreach ($items as $item)
{
$link = 'http://test_url/mytest.php;report='. $item['id'];
echo '
<script type="text/javascript">
var item_detail = ', json_encode($item['reported_spam']['detail']),'
var item_NoLink = ', json_encode('http://test_url/mytest.php;'),'
</script>
<a id="mylink[]" onclick="getDetails(item_detail);" href="'.$link.'" style="text-decoration:none;">
<img id="myImage" alt="" src="http://test_url/images/reported.gif" title="'.$item['reported_spam']['title'].'" style="position:relative;border=0px;vertical-align:middle;right:5px;" />
</a>';
}
ありがとう。
編集:私はそれを理解しました。
@Grant Zhu:配列はphpでそのように記述されておらず、空の角かっこを使用するだけで次のキーに進むことができます。画像ID配列とjs変数に対してエラーを作成したので、あなたは正しかったです。また、phpの場合、一重引用符でecho内に一重引用符を使用する場合は、バックスラッシュを使用する必要があります(phpを再度使用する場合を除く)。
私はそれをそのように機能させました:
echo '
<script type="text/javascript">
var item_NoLink = ', json_encode('http://test_url/mytest.php;'),'
function getDetails(message)
{
if (confirm(message))
return true;
else
{
var links = document.getElementsByTagName("a");
for(i=0;i<links.length;i++)
links[i].href = item_NoLink;
}
}
</script>';
foreach ($items as $item)
{
$link = 'http://test_url/mytest.php?report='. $item['id'];
echo '
<a id="mylink[]" onclick="getDetails(\'',$item['reported_spam']['detail'],'\');" href="'.$link.'" style="text-decoration:none;">
<img id="myImage[]" alt="" src="http://test_url/images/reported.gif" title="'.$item['reported_spam']['title'].'" style="position:relative;border=0px;vertical-align:middle;right:5px;" />
</a>';
}
ありがとうございました。