我需要在PHP文件中的控件之后向input[name=$key]
添加属性
代码:
if ( !isset( $field_obj[ $key ] ) )
{
?>
<script> $('input[name=$key]').prop("data-toggle", "popover");</script>
<?php
但$key
在PHP部分中声明,我无法在脚本部分中使用它。
那我怎么能这样做呢?
答案 0 :(得分:3)
<script> $('input[name=<?php echo $key ?>]').prop("data-toggle", "popover"); </script>
但这是一个不好的实践..
答案 1 :(得分:1)
不推荐,但试试这个,
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script> $('input[name=<?php echo $key ?> ]').prop("data-toggle", "popover"); </script>
<?php
}
?>
答案 2 :(得分:0)
每个人都在进行的不良做法是生成Javascript代码的做法。
最佳做法是将所有JS代码尽可能保持静态,并加载到单独的.js文件中。
为了在设置PHP变量时触发这段代码,你可以这样做:
在您的主JS代码文件中,您将拥有一个这样的块,它在页面加载时运行:
for(var key in window.pageConfig.keys) {
$('input[name='+key+']').prop("data-toggle", "popover");
}
每次加载页面时,此代码的加载方式都完全相同。但是,您的PHP代码将生成一小块JS代码,用相关数据填充window.pageConfig
对象。
您的PHP代码可能如下所示:
$jsonKeys = json_encode(['keys'=>array_keys($field_obj)]);
print "<script>var pageConfig = {$jsonKeys};</script>";
这将在Javascript中生成pageConfig
对象,然后您的其余代码可以使用它来确定要处理的密钥。
注意,我在这个PHP代码中做了一些假设;例如,我假设你想为每个field_obj
运行jQuery代码。如果这个假设是错误的,那么随意改变代码以适应,但希望我给你的例子将带你走正确的道路。
这里的关键点是尽量减少PHP代码生成的JS代码量;当然要避免在PHP中生成JS数据对象以外的任何东西;其余的JS代码应该是静态的。
答案 3 :(得分:-1)
尝试回复$key
:
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script>
$('input[name=<?= $key ?>').prop("data-toggle", "popover");
</script>
<?php
}
?>
答案 4 :(得分:-1)
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script>
$('input[name="<?php echo $key ?>" ]').prop("data-toggle", "popover");
</script>
<?php
}
?>