正在使用隐藏的<输入>,其值设置为php中的某些内容,然后传递给jquery bad


Is using a hidden <input> with its value set to something in php to then pass to jquery bad?

我正在开发一个wordpress主题,我有一个联系表单,它使用jquery检查错误,然后在电子邮件成功发送时显示确认消息。

在显示确认电子邮件之前,我想显示加载.gif以便用户知道它正在执行某些操作。我的问题是在jquery中分配img SRC url,因为我不希望它被修复。

我想设置它以获取站点 URL,然后将图像名称添加到其中。

由于您无法在 js 中解析 PHP,我认为也许我可以使用将数据传递给 JS 的隐藏输入在表单页面上作弊并执行 PHP。

所以我会有一个

<li class="hiddenurl">
    <input name="hiddenurl" value="<?php bloginfo('url'); ?>">
</li>
然后在

jquery中,我将值设置为变量,然后在JS中:

$(this).parent().append('<img src="'+variable+'/library/images/loading.gif" etc

这是一种不好的做法吗?

由于您无法在 js 中解析 PHP

错。

<script type="text/javascript">
    var myvar = <?php echo json_encode($some_php_variable); ?>;
</script>

json_encode 使任何 PHP 变量(资源除外)都可以通过 JavaScript 立即解析。它有点像var_export但用于JavaScript而不是PHP。

这不一定是一种"糟糕"的方法,但jQuery提供了.data()方法来实现这一目标。您可以使用它在 HTML 中添加您自己的"data-"注释,然后在 JS 代码中检索/设置它们。

在此处查看 jQuery 文档:http://api.jquery.com/jQuery.data/

所以我会使用它来将 url 添加到图像中并在 JS 中将其抓取出来。

如果您只想将 URL 作为 JS 中的变量传递,那么@Kolink对此有正确的答案。

不会是坏事,因为它不会伤害任何东西..但是如果您只想获取URL,那么为什么不呢..

window.location

这样

window.location.pathname // outputs "/questions/14526659/is-using-a-hidden-input-with-its-value-set-to-something-in-php-to-then-pass-to"
window.location.origin  // outputs http://stackoverflow.com