请问怎么才可以让php和js互相调用对象呢? [ 2.0 版本 ]
大家好,请问如何才能实现下方需求? php js 对象之间的调用
<script>
function renderColumns(event, data) {
var node = data.node;
$tdList = $(node.tr).find(">td");
$tdList.eq(1).text(node.data.route);
crate = '<?=
Html::a(' 新增 ', 'javascript:void(0);',
['action-url' => Url::to(['create','id'=> 这里需要调用js的对象data ])]);
?>';
$tdList.eq(2).html(crate);
}
</script>
最佳答案
-
首先html或者js中的
<?php ... ?>
以及<?= ... ?>
都是在后端执行的(通过webserver调用php程序对.php文件解析执行),而js是前端脚本,由浏览器解释执行的。js'调用'的php对象,在后端就定格了,不会再变化。php脚本变成了html或者js。
你的php中想要使用js对象,只能用
<?php ... ?>
和js混写,而不适合用<?= ... ?>
方法。js对象(比如你的问题中的data)不能嵌在在<?php ?>内。
例如这样混写:
var val = ''; <?php $i=0; foreach ($un_grouped_boxes as $k => $v) { $boxid = $v['id']; ?> var box = getObjInBoxes(<?= $boxid ?>); console.log('mac:'+box['lan_mac']); val += '<li class="ads-group-boxes-info" >'; val += ' <div style="width:100%;">'; val += '<?php echo "<span >"; $itmp = ($i==0)?'fa fa-circle':'fa fa-circle-o'; $icon = '<span boxid="'.$boxid.'" id="boxid-'. $boxid. '" class="' . $itmp . '"> </span>'; echo Html::a($icon.$v["lan_mac"], "javascript:void(0)",[ "onclick" => "selectBox($boxid)", "style" => "text-decoration:none;", ]); echo "</span>"; ?>'; val += '</div>'; val += ' <div class="ads-group-boxes-info-bottom" style="font-size:10px;">'; val += ' <span>序列号:<?= $v["sn"] ?> </span>'; val += ' </div>'; val += ' </li>'; <?php if ($i==0){ ?> var v = <?= json_encode($v) ?>; show_box_info(v); <?php } ?> <?php $i++;} ?> if (val != ''){ val = '<ul class="list-unstyled">'+val+'</ul>'; } _list.html(val);
共 2 条回复
其他 0 个回答
没有找到数据。
xjdata
注册时间:2011-12-07
最后登录:2024-05-05
在线时长:112小时38分
最后登录:2024-05-05
在线时长:112小时38分
- 粉丝23
- 金钱14169
- 威望75
- 积分16039