和这个相-6ren">
gpt4 book ai didi

javascript - 通过 ajax 将 js 值发送到 php Controller

转载 作者:行者123 更新时间:2023-11-29 16:06:14 24 4
gpt4 key购买 nike

我有这个按钮

<button  id="<?php echo $u['id']?>" name="activation" onclick="handleButton(this);" type="submit" class="btn btn-success"></button>

和这个相关的按钮

<td id="<?php echo $u['id']?>"><?php echo $u['id']?></td>

我正在使用这个脚本将按钮的值发送到我的 php Controller

function handleButton(obj) {
var javascriptVariable = obj.id;
// alert (javascriptVariable);
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>index.php/admin/active_users",
dataType: 'text',
data: 'myname='+javascriptVariable,
success: function (data){
}

});
}

当我使用警报时,javascriptVariable 的结果是正确的,我想在我的 Controller 中使用它,所以我在我的 Controller 中尝试这样做:

if(isset($_POST['activation']))
{
$name = $this->input->post('myname');
var_dump($name);
}

但是我得到了 null 值,这是怎么回事?

最佳答案

当您通过 AJAX 从浏览器传递数据时,只有您在 data: 参数中传递的数据会被发送到 PHP 脚本。

因此,如果您想在 PHP 脚本中测试激活,您必须实际发送该参数

另请参阅下面对 data: 参数创建的修改。当传递多个参数时,它更容易阅读并且更容易正确编码,因为您不必记住 &+ 的连接。

function handleButton(obj) {
obj.preventDefault();
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>index.php/admin/active_users",
dataType: 'text',
data: {activation: 1, myname: obj.id}, // add parameter
success: function (data){
alert(data);
}

});
}

现在 PHP 将在 $_POST 数组 activationmyname 中看到 2 个参数

if(isset($_POST['activation']))
{
$name = $_POST['myname'];
var_dumb($name);
}

或者如果您正在使用我认为您正在使用的框架

if(isset($this->input->post('activation')) {
$name = $this->input->post('myname');
var_dumb($name);
}

编辑:

发现另一个问题,您的按钮有一个属性 type="submit",这将导致 javascript 与以正常方式提交的表单一样运行。

删除 type="submit" 属性并加倍确保不会提交表单以及 AJAX 添加对 preventDefault(); 的调用以及在 AJAX 调用之前

关于javascript - 通过 ajax 将 js 值发送到 php Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41244468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com