如何在我的 php 循环中将 javascript 变量作为变量传递:
像这样的东西(显然行不通):
var myJsVar = 100;
@for ($i = 0; $i<myJsVar; $i++)
... some code
@endfor
我还尝试用 ajax 解决这个问题:
/**
* Get slider value
*/
$.ajax({
type: 'GET',
url: myUrl,
data: myJsVar,
success: function (option) {
console.log(myJsVar);
}
});
它返回成功函数,
此外,我在我的 Controller 中执行了此操作:
public function prod(Request $request)
{
if ($request->ajax()) {
$ajax = "AJAX";
dd($ajax);
} else {
$ajaxN = "NO Ajax";
dd($ajaxN);
}
}
没用。
我不确定如何进行,希望得到一些帮助。
最佳答案
PHP 甚至在页面到达您的浏览器之前就已经完成了它的工作,因此将变量从 Javascript 传递到 PHP 而不执行另一个请求是根本不可能的。考虑
A) 将循环移动到 Javascript。考虑使用一些 UI 库,如 Vue.js , Angular或 React .
B) 将 myJsVar
的内容移动到 PHP。如果它取决于用户输入或浏览器渲染,那是不可能的。
C) 通过 Ajax 请求执行渲染逻辑
$.ajax({
type: 'GET',
url: myUrl,
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: {value: myJsVar},
success: function (response) {
$(someContainer).html(response);
}
});
在你的 Controller 中:
public function prod()
{
$value = Request::get('value');
return view('view-with-a-loop')->with('value', $value);
}
小心使用后一种 XSS 方式的方法。
关于javascript - Laravel Blade 在 php 中传递 Javascript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38224886/