使用JS';更正语法;onclick';PHP echo语句中的函数与嵌入的XML获取进行AND


Correct syntax using JS 'onclick' functions inside PHP echo statements AND with embedded XML fetching

我很可能会被打b'*ch耳光,因为我在发布之前没有足够的搜索论坛,但我真的认为我已经搜索了所有相关的帖子,许多帖子似乎没有专门涵盖我的问题,其他的都超出了我的初学者的想象(因为我是PHP和js的新手)。话虽如此。。。

我构建了一个PHP代码,使用$xml=simplexml_load_file(); 从XML文件中获取数据

不用担心,但是,onclick和/或onmouseup javascript函数中需要存在一个所需的数据"条目"或"字段"。

代码如下:

<?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();'''&lt--Freddy Krugar"大幅削减"示例

无论如何,我不知所措。

尝试使用双引号并转义它们:

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

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

演示

通过这种方式,您只在PHP中执行转义,而不需要DOM解析器的Freddy Krugar转义。