PHP jQuery 无法识别代码

PHP code not recognized in jQuery

我有一个函数,当我点击一个按钮时会被调用。我传递给函数的数据没有包含在表单标签中,所以我必须手动包含 csrf 令牌:

function NewDeleteBox(box_id, batch_id, staff_id){
    $.ajax({
      url: 'oss/admin/delete_box',
      type: "POST",
      data: {'batch_id': batch_id, 'staff_id': staff_id, 'box_id': box_id, '<?php echo $this->security->get_csrf_token_name(); ?>': '<?php echo $this->security->get_csrf_hash();?>'},
      success: function(data) {
    
      }
    });
}

但是,我的 csrf_token_name 和哈希不起作用。它显示了我在数据中声明它们的方式。

知道我为什么会收到这个吗?谢谢!

php 代码不适用于 .js 文件。只需将它放在脚本标签内的 .php 文件中,它应该可以正常工作。

<script>
function NewDeleteBox(box_id, batch_id, staff_id){
    $.ajax({
      url: 'oss/admin/delete_box',
      type: "POST",
      data: {'batch_id': batch_id, 'staff_id': staff_id, 'box_id': box_id, '<?php echo $this->security->get_csrf_token_name(); ?>': '<?php echo $this->security->get_csrf_hash();?>'},
      success: function(data) {

      }
    });
}
</script>

如果您已将所有代码放入 php 文件中,但仍然无法正常工作,那么您可以采用另一种方法。

将两个隐藏字段放在同一个页面上,并为它们分配唯一的 ID。 然后在这个 ajax 函数中,使用 jQuery.

获取它们的值
<input type="hidden" id="csrf" value="<?php echo $this->security->get_csrf_token_name(); ?>">
<input type="hidden" id="hash" value="<?php echo $this->security->get_csrf_hash();?>">

那么你的 javascript 函数应该是这样的:

function NewDeleteBox(box_id, batch_id, staff_id){
var csrf = $("#csrf").val();
var hash = $("#hash").val();
var postdata = {'batch_id': batch_id, 'staff_id': staff_id, 'box_id': box_id};
postdata[csrf] = hash;
    $.ajax({
      url: 'oss/admin/delete_box',
      type: "POST",
      data: postdata ,
      success: function(data) {

      }
    });
}