php中的Laravel blade pass Javascript变量
如何在php循环中将javascript变量作为变量传递: 类似这样的东西(显然不起作用): 它返回success函数 此外,我在控制器中执行了以下操作:php中的Laravel blade pass Javascript变量,javascript,php,ajax,laravel,variables,Javascript,Php,Ajax,Laravel,Variables,如何在php循环中将javascript变量作为变量传递: 类似这样的东西(显然不起作用): 它返回success函数 此外,我在控制器中执行了以下操作: public function prod(Request $request) { if ($request->ajax()) { $ajax = "AJAX"; dd($ajax); } else { $ajaxN = "NO Ajax"; dd($ajax
public function prod(Request $request)
{
if ($request->ajax()) {
$ajax = "AJAX";
dd($ajax);
} else {
$ajaxN = "NO Ajax";
dd($ajaxN);
}
}
public function prod()
{
$value = Request::get('value');
return view('view-with-a-loop')->with('value', $value);
}
它不起作用
我不知道如何继续,希望能得到一些帮助。PHP甚至在页面进入浏览器之前就已经完成了它的工作,因此在不执行其他请求的情况下将一个变量从Javascript传递到PHP是不可能的。考虑 A)将循环移动到Javascript。考虑使用一些类似于,或./p>的UI库。 B)将
myJsVar
的内容移动到PHP。如果它依赖于用户输入或浏览器渲染,那是不可能的
C)通过Ajax请求执行渲染逻辑
$.ajax({
type: 'GET',
url: myUrl,
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: {value: myJsVar},
success: function (response) {
$(someContainer).html(response);
}
});
在控制器中:
public function prod(Request $request)
{
if ($request->ajax()) {
$ajax = "AJAX";
dd($ajax);
} else {
$ajaxN = "NO Ajax";
dd($ajaxN);
}
}
public function prod()
{
$value = Request::get('value');
return view('view-with-a-loop')->with('value', $value);
}
小心使用后一种方法XSS-wise。我使用blade中的一个部分添加javascript,然后将其拉入布局。下面的示例显示了整数/字符串/模型集合的传递,例如: //叶片模板
@extends('layouts.app')
@section('javascript')
<script type="text/javascript">
var myInteger = {!! $myInteger !!};
var myString = '{!! $myInteger !!}';
var myObject = {!! json_encode($models) !!};
</script>
@endsection
@section('content')
...
@endsection
@extends('layouts.app'))
@节(“javascript”)
var myInteger={!!$myInteger!!};
var myString='{!!$myInteger!!}';
var myObject={!!json_encode($models)!!};
@端部
@节(“内容”)
...
@端部
//布局(javascript可以进入布局中的任何位置,即头部或身体:
<!DOCTYPE html>
<html>
<body>
@yield('content')
@yield('javascript')
</body>
</html>
@产量(‘含量’)
@收益('javascript')
从何处获得myJsVar的值
?我的意思是它是静态的,或者来自数据库或其他东西?我简化了代码,myJsVar是一个来自滑块(javascript,jquery ui滑块)的动态值,澄清一下,“不工作”部分意味着从控制器返回“没有Ajax”?是的,我得到“没有Ajax”“没有ajax”的原因是jQuery不会自动设置标题。之前Laravel在链接中调用的方法是我的循环实际上在我的Javascript中,如下图所示var bla;
如果你是这样想的话,myJsVar的内容是由一个滑块创建的。如果我dd(value),我会检查它OK
我在JS中得到nullTry{value:“foo”}
,只是为了看看它是否在php或JS方面失败,如果我将其更改为“foo”dd(value),则返回null