如何在php文件中使用jquery代码?
我需要在PHP文件中的控件之后向如何在php文件中使用jquery代码?,php,jquery,Php,Jquery,我需要在PHP文件中的控件之后向输入[name=$key]添加一个属性 代码: if ( !isset( $field_obj[ $key ] ) ) { ?> <script> $('input[name=$key]').prop("data-toggle", "popover");</script> <?php if(!isset($field_obj[$key])) { ?> $('input[name=$key]').prop(“数据切换”
输入[name=$key]
添加一个属性
代码:
if ( !isset( $field_obj[ $key ] ) )
{
?>
<script> $('input[name=$key]').prop("data-toggle", "popover");</script>
<?php
if(!isset($field_obj[$key]))
{
?>
$('input[name=$key]').prop(“数据切换”、“弹出框”);
尝试回显$key
:
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script>
$('input[name=<?= $key ?>').prop("data-toggle", "popover");
</script>
<?php
}
?>
$('input[name=').prop(“数据切换”、“弹出框”);
不推荐使用,但请尝试此操作
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script> $('input[name=<?php echo $key ?> ]').prop("data-toggle", "popover"); </script>
<?php
}
?>
$('input[name=]').prop(“数据切换”、“popover”);
$('input[name=]).prop(“数据切换”、“弹出框”);
但这是一个糟糕的做法。
<?php
if ( !isset( $field_obj[ $key ] ) ) {
?>
<script>
$('input[name="<?php echo $key ?>" ]').prop("data-toggle", "popover");
</script>
<?php
}
?>
$('input[name=“”).prop(“数据切换”、“弹出框”);
每个人都在谈论的一个坏习惯是生成Javascript代码
最佳实践是将所有JS代码尽可能静态地加载到一个单独的.JS文件中
为了在设置PHP变量时触发这段代码,您可以执行以下操作:
$jsonKeys = json_encode(['keys'=>array_keys($field_obj)]);
print "<script>var pageConfig = {$jsonKeys};</script>";
在您的主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>";
$jsonKeys=json_编码(['keys'=>array_keys($field_obj)]);
打印“var pageConfig={$jsonKeys};”;
这将在Javascript中生成pageConfig
对象,然后代码的其余部分可以使用该对象确定要处理的键
注意,我在这段PHP代码中做了一些假设;例如,我假设您希望为每个字段\u obj
运行jQuery代码。如果这个假设是错误的,请随意更改代码以适应,但希望我给您的示例将引导您走上正确的道路
这里的关键点是尽量减少PHP代码生成的JS代码量;当然要避免在PHP中生成JS数据对象以外的任何东西;JS代码的其余部分应该是静态的。这确实是一种可怕的编码方式……但您需要使用脚本标记回显$key。$('input[name=])
这将导致语法错误(]
在php标记中)