使用blade中的参数调用javascript函数

使用blade中的参数调用javascript函数,javascript,jquery-select2,laravel-blade,Javascript,Jquery Select2,Laravel Blade,我浏览了一大堆听起来类似的问题,但没有一个适用于我的问题。我想将一个参数(由一个foreach获得)传递给一个javascript函数(与我的视图位于同一个文件中),以在我的刀片视图的数据表中提供几个Select2下拉列表。问题似乎是我无法将php变量$process->id传递给javascript函数 从我的角度来看: @foreach($processes as $process) <tr> <td>{{ $pro

我浏览了一大堆听起来类似的问题,但没有一个适用于我的问题。我想将一个参数(由一个
foreach
获得)传递给一个javascript函数(与我的视图位于同一个文件中),以在我的刀片视图的数据表中提供几个Select2下拉列表。问题似乎是我无法将php变量
$process->id
传递给javascript函数

从我的角度来看:

@foreach($processes as $process)                        
<tr>
  <td>{{ $process->id }}</td>
  <td>{{ $process->title }}</td>
  <td>{{ $process->client }}</td>
  <td>
    <script> getDisponents($process->id); </script> //not working ofc.
    <select class="mySelect" name="state"></select> 
  </td>        
(...)
@push('js')
<script>
function getDisponents(process_id){
  $.ajax({
    url: 'http://localhost/matpro/public/getUsersPerProcess', //works.
    type: "get",
    data: {
      processId:process_id,
      //processId:'5', //works for manually given ids.
    },
    success: function(response) {
      $('.mySelect').select2({
        data: response,
      });
    },
    error: function(jqXHR, textStatus, errorThrown) {
      alert(textStatus + " : " + jqXHR.status + " : " + errorThrown);
    }
  });
}
</script>
@foreach($processas$process)
{{$process->id}
{{$process->title}
{{$process->client}
getDisponents($process->id)//不工作的ofc。
(...)
@推送('js')
函数getDisponents(进程id){
$.ajax({
网址:'http://localhost/matpro/public/getUsersPerProcess“,//有效。
键入:“获取”,
数据:{
processId:process\u id,
//processId:'5',//适用于手动给定的ID。
},
成功:功能(响应){
$('.mySelect')。选择2({
数据:答复,
});
},
错误:函数(jqXHR、textStatus、errorshown){
警报(textStatus+“:”+jqXHR.status+“:”+errorshown);
}
});
}
像这样试试

     <script> 
    var processId = <?php echo $process->id ?>
getDisponents(processId)
    function getDisponents(process_id){ $.ajax({ url: 'http://localhost/matpro/public/getUsersPerProcess', //works. type: "get", data: { processId:process_id, }, success: function(response) { $('.js-example-basic-single').select2({ data: fData, }); }, error: function(jqXHR, textStatus, errorThrown) { alert(textStatus + " : " + jqXHR.status + " : " + errorThrown); } }); } </script>

变量processId=
getDisponents(进程ID)
函数getDisponents(进程id){$.ajax({url:'http://localhost/matpro/public/getUsersPerProcess“,//works.type:“get”,数据:{processId:process_id,},成功:函数(响应){$('.js示例基本单')。选择2({data:fData,});},错误:函数(jqXHR,textStatus,errorhorn){alert(textStatus+“:“+jqXHR.status+”:”+错误抛出);}}}}
像这样试试

     <script> 
    var processId = <?php echo $process->id ?>
getDisponents(processId)
    function getDisponents(process_id){ $.ajax({ url: 'http://localhost/matpro/public/getUsersPerProcess', //works. type: "get", data: { processId:process_id, }, success: function(response) { $('.js-example-basic-single').select2({ data: fData, }); }, error: function(jqXHR, textStatus, errorThrown) { alert(textStatus + " : " + jqXHR.status + " : " + errorThrown); } }); } </script>

变量processId=
getDisponents(进程ID)
函数getDisponents(进程id){$.ajax({url:'http://localhost/matpro/public/getUsersPerProcess“,//works.type:“get”,数据:{processId:process_id,},成功:函数(响应){$('.js示例基本单')。选择2({data:fData,});},错误:函数(jqXHR,textStatus,errorhorn){alert(textStatus+“:“+jqXHR.status+”:”+错误抛出);}}}}

我的建议是将javascript与php分开,并在元素本身上使用数据属性,这些属性可以使用javascript轻松检索

刀片:

<select class="mySelect" data-id="{{$process->id}}" name="state"></select> 

说了这么多,我真的不明白为什么不填充每个服务器端

我的建议是将javascript与php分开,并在元素本身上使用数据属性,这些元素可以使用javascript轻松检索

刀片:

<select class="mySelect" data-id="{{$process->id}}" name="state"></select> 


说了这么多,我真的不明白为什么不填充每个服务器端

您需要blade将
$process\u id
输出到html脚本标记中<代码>getDisponents('{{$process->id}}')我该如何确切地表达这个<代码>getDisponents('{{$process->id}}')不工作。“不工作”不会告诉我们任何关于抛出的错误或实际生成的源代码产生的内容。检查浏览器开发工具控制台是否存在错误该错误是一个“未捕获的语法错误”,这也没有帮助。那么,在发送到浏览器的生成源中,该错误是什么样子的呢?您需要blade将
$process\u id
输出到html脚本标记中<代码>getDisponents('{{$process->id}}')我该如何确切地表达这个<代码>getDisponents('{{$process->id}}')不工作。“不工作”不会告诉我们任何关于抛出的错误或实际生成的源代码产生的内容。检查浏览器开发工具控制台是否存在错误该错误是一个“未捕获的语法错误”,这也没有帮助。那么,在发送到浏览器的生成源中,它看起来是什么样子?由于loopMe,无法执行该操作,因为我不熟悉blade ajax,所以我很可能不会事先选择最好的解决方案。感谢您提供的代码示例,但我仍然不知道将ajax调用放在哪里。
$.get
$的缩写。当我看到类型为getNow并且它正在工作时,ajax
。但是有一件奇怪的事情:我添加了
$sel.val($('.mySelect选项:eq(1)').val()).trigger('change')
在下拉列表中选择第一个条目,这对某些下拉列表有效,但对某些下拉列表无效。当我重新加载页面时,它会对随机的其他下拉菜单起作用,这是不确定的。有什么想法吗?应该使用
select2
插件API来更改值。Ooooh并且也不要使用
$('.mySelect
)。对于特定的instanceYes,我已经尝试了
$sel.select2.val($('.mySelect option:eq(1)).val()。触发器('change'));
但这根本不起作用。我也是,因为我对刀片式ajax的东西还不熟悉,因此我很可能不会事先选择最佳解决方案。我感谢您提供的代码示例,但我仍然不知道将ajax调用放在哪里。
$.get
$的缩写。当我看到类型为getNow并且它正在工作时,ajax
。Bu有一件奇怪的事:我添加了
$sel.val($('.mySelect选项:eq(1)').val()).trigger('change'))
在下拉列表中选择第一个条目,这对某些下拉列表有效,对某些下拉列表无效。当我重新加载页面时,它对随机的其他下拉列表有效,这是不确定的。有什么想法吗?应该使用
select2
插件API来更改值。哦,不要使用
$('.mySelect
other.使用$sel.find('option:eq(1)')`对于特定的InstanceYes,我已经尝试了$sel.select2.val($('.mySelect option:eq(1)').val())。触发器('change');,但这根本不起作用。