我怎样才能在php文件中使用jquery代码?

时间:2015-12-11 09:56:58

标签: php jquery

我需要在PHP文件中的控件之后向input[name=$key]添加属性

代码:

if ( !isset( $field_obj[ $key ] ) ) 
{
?>
    <script> $('input[name=$key]').prop("data-toggle", "popover");</script>
<?php

$key在PHP部分中声明,我无法在脚本部分中使用它。 那我怎么能这样做呢?

5 个答案:

答案 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
}
?>