Using a php variable in a setTimeOut function in a mouseover in an html tag
我有一个php变量:
1 2 3 | <?php $imagename = $this->helper('catalog/image')->init($this->getProduct(), 'image', $_image->getFile()); ?> |
这是在循环中创建的。 此循环显示一些图像。
当我将鼠标悬停在图像上时,会触发onmouseover。 一切顺利。
问题是:
1 | onmouseover="myTimer=setTimeout('imageswitcher(<?php echo $imagename;?>)', 2000);" |
PHP不起作用。 现在,我阅读了一些有关ajax请求的信息。 但是我不知道它是什么或如何使用。 所以我希望这里有人可以帮助我。
首先,除了PHP变量之外,这里还有一百万个问题。首先,您实际上不应该再使用
因此,要使用更好的代码来复制您的问题,您可以执行以下操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <!-- This should be in an external JS file --> // IE Event Listener"Polyfill" var addEvent = function(element, event, callback) { if (document.addEventListener) { element.addEventListener(event, callback); } else { element.attachEvent('on' + event, callback); } }; addEvent(document, 'load', function() { var element = document.getElementById('element'); attachEvent(element, 'onmouseover', function() { myTimer = setTimeout('imageswitcher(<?php echo $imagename; ?>)', 2000); }); } <!-- Not an actual element, used for example purposes only --> <element id="element"></element> |
变量应使用'var'分配
下一个问题是分配
1 | var myTimer = setTimeout('imageswitcher(<?php echo $imagename; ?>)', 2000); |
函数字符串
我不知道您要做什么,但是您正在向
1 2 3 | var myTimer = setTimeout(function() { imageswitcher(<?php echo $imagename; ?>); }, 2000); |
解决问题
现在,让我们在这里解决实际问题。
1 | imageswitcher('<?php echo $imagename; ?>'); |
放在一起
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!-- This should be in an external JS file --> var addEvent = function(element, event, callback) { if (document.addEventListener) { element.addEventListener(event, callback); } else { element.attachEvent('on' + event, callback); } }; addEvent(document, 'load', function() { var element = document.getElementById('element'); attachEvent(element, 'onmouseover', function() { var myTimer = setTimeout(function() { imageswitcher('<?php echo $imagename; ?>'); }, 2000); }); }; <!-- Not an actual element, used for example purposes only --> <element id="element"></element> |
用
1 | onmouseover="myTimer=setTimeout(function() { imageswitcher(<?php echo htmlspecialchars(json_encode($imagename));?>) }, 2000);" |