gpt4 book ai didi

php - 服务器端代码与客户端代码混合 - 最佳实践

转载 作者:可可西里 更新时间:2023-11-01 00:46:54 24 4
gpt4 key购买 nike

在给定的 php 脚本中,我有以下内容:

<script>

function showMember() {

return $.ajax({ //Perform an asynchronous HTTP (Ajax) request.

type: 'get',

//A string containing the URL to which the request is sent.
url: '<?php echo $this->createUrl('member'); ?>',
...

如果我将它放在 php 文件中,这会起作用。

但这似乎不是组织事物的好方法,我希望将所有这些代码放在一个单独的 .js 文件中。

处理这些情况的正确方法是什么?

最佳答案

我们使用两种方法使在服务器端创建的数据可供客户端访问:

1) '数据传输'对象,由服务器端脚本填充。例如:

PHP:

<?php
$data = [
'urls' => [
'createSomething' => $this->createUrl($from, $something),
// ...
],
'labels' => [
'createSomething' => $this->cms($labelName),
// ..
],
]
?>
<script>
var dto = <?= json_encode($data) ?>;
</script>

JS:

$.ajax(dto.urls.createSomething, {}, function() { 
alert(dto.labels.createSomethingSuccess);
}

2) 数据集属性,同样由服务器填充。例如:

PHP:

<button data-target-url="<?= $this->createUrl($from, $something) ?>"
>Something</button>

JS:

$('button[data-target-url]').click(function() {
var targetUrl = $(this).data('targetUrl');
$.post(targetUrl...);
}

对我来说,第二种方法似乎最有用,因为某些与 UI 相关的属性集仍在服务器端计算 - 例如,插件设置。

关于php - 服务器端代码与客户端代码混合 - 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com