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) {
}
});
}
我有一个函数,当我点击一个按钮时会被调用。我传递给函数的数据没有包含在表单标签中,所以我必须手动包含 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) {
}
});
}