1

投稿する前にフォーラムを十分に検索していないため、私は平手打ちを受ける可能性がありますが、関連するすべての投稿を既に検索したと思います。多くは私が持っている質問を具体的にカバーしていないようです。頭(私はPHPとjsが初めてなので)。そうは言っても…

を使用して XML ファイルからデータを取得するための PHP コードを作成しました。$xml=simplexml_load_file();

心配はありませんが、必要なデータ「エントリ」または「フィールド」の 1 つがonclickおよび/またはonmouseupJavaScript 関数内に存在する必要があります。

コードは次のとおりです。

<?php
$xml=simplexml_load_file('prod_test_feed_sameday.xml');
        $max = 8;
        $i = 1;
foreach($xml->product as $feed){ 
if ($i <= $max){
echo "<table id='{$feed->position}' class='prod_container'>
        <td class='hidden_mask' id='{$feed->position}'>
        </td>
        <td class='hidden_image' id='{$feed->position}'><span style='background:url({$feed->prod_image_large}) no-repeat center;'/></span><div><a onmouseup='$('.hidden_image#{$feed->position}').slideToggle('slow');' onclick='$('.hidden_mask#{$feed->position}').hide();'><b>CLOSE</b></a></div>
        </td>
    <tr>
        <td class='prod_image' id='{$feed->position}'>
        <span style='background:url({$feed->prod_image_small}) no-repeat center; background-size:contain;'/></span>         
        </td>
        <td rowspan='1' class='info_toggle' id='{$feed->position}'><a onmouseup='$('.hidden_image#{$feed->position}').slideToggle('slow');' onclick='$('.hidden_mask#{$feed->position}').show();><img src='images/zoom_02.png' title='See a larger image of these flowers' /></a>
        </td>
    </tr>
    <tr>
        <td colspan='2' class='prod_name' id='{$feed->position}'>{$feed->prod_name}
        </td>
    </tr>
    <tr>
        <td colspan='2' class='prod_price' id='{$feed->position}'><span id='{$feed->position}'>from: £{$feed->price}</span><a href='{$feed->prod_link}' target='_blank'><span class='buy_button'>&nbsp;Buy it now!&nbsp;</span></a></td>
    </tr>
</table>";
            $i++;
        } 
      }  
?>

データと CSS はすべて完全に機能します。hrefコードの最後にリンクがあり、これも完全に機能します。

関数内の構文のエラーを見つけようとして頭を悩ませていonlickます。

たとえば、試行錯誤を使用して、あらゆる方法のバックスラッシュを試しました。

onclick='$(\'.hidden_mask#{$feed->position}\').hide();' または onclick='\'$('.hidden_mask#{$feed->position}').hide();\'' または onclick=\''$(\'.hidden_mask#{$feed->position}\').hide();\'' または onclick=\''$(\\'.hidden_mask#{$feed->position}\\').hide();\'' <--Freddy Krugar の「スラッシュ」の例

とにかく途方に暮れています。

4

1 に答える 1

0

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

echo " ...
    onclick=\"$('.hidden_mask#{$feed->position}').hide();\"
...";

または

echo " ...
    onclick='$(\".hidden_mask#{$feed->position}\").hide();'
...";

デモ

このようにして、DOM パーサーの Freddy Krugar エスケープを必要とせずに、PHP のみでエスケープを行います。

于 2012-07-30T12:24:00.730 に答える