Php 我想使用Ajax将id从视图传递到Codeigniter中的控制器,并更新DB中的下拉选择

Php 我想使用Ajax将id从视图传递到Codeigniter中的控制器,并更新DB中的下拉选择,php,jquery,mysql,ajax,codeigniter,Php,Jquery,Mysql,Ajax,Codeigniter,我想从表中传递每一行的ID,并使用AJAX将其传递给控制器,还想在DB中更新该行的下拉选择 我在下拉列表中所做的选择会传递给控制器,但不确定如何根据其每行条件在DB中更新。非常感谢您的帮助 下面是我的用户界面截图 带有ID和下拉列表的屏幕截图 查看文件 <?php if( is_array( $fbrecords ) && count( $fbrecords ) > 0 ) foreach($fbrecords as $r) { ?> <tr

我想从表中传递每一行的ID,并使用AJAX将其传递给控制器,还想在DB中更新该行的下拉选择

我在下拉列表中所做的选择会传递给控制器,但不确定如何根据其每行条件在DB中更新。非常感谢您的帮助

下面是我的用户界面截图

带有ID和下拉列表的屏幕截图

查看文件

<?php if( is_array( $fbrecords ) && count( $fbrecords ) > 0 ) 
foreach($fbrecords as $r) { ?>
    <tr class="idrow">
        <td id="tdname" ><!-- style="display:none;" --> <?php echo $r->id; ?></td>
        <td><?php echo $r->fullname; ?></td>
        <td><?php echo $r->email; ?></td>
        <td><?php echo $r->mobile; ?></td>
        <td><?php echo $r->message; ?></td>
        <td><?php echo $r->jtime; ?></td>
        <td> <?php  $data=array(
        
'name'=>'status',
'row' => '12px',
'id' => 'status',
'selected'=>'none',
'class'=>'statusClass'

);
$data_status = array(
'none' => 'none',
'A&A' => 'Attended & Acted',
'YTA' => 'Yet to Attend',
);
echo form_dropdown($data, $data_status, set_value('status')); ?> </td>
        <td><button type="button" class="btn btn-sm btn-success emlbtn" > Reply to <?php $fname=explode(" ",$r->fullname); echo $fname[0]; ?></button>
        
$(document).ready(  function() {
$(".statusClass").change(function(event) {
event.preventDefault();
//var dropDown = document.getElementById("status");
//var status =  dropDown.options[dropDown.selectedIndex].value;
var status = $(this).val(); 
console.log(status);
jQuery.ajax({
type: "POST",
url: "<?php echo base_url(); ?>" + "index.php/user_authentication/user_data_status_submit",
dataType: 'json',
data: {status:status},
success: function(data){
if (result)
{
alert("success");
}
}

});
});
}); 
模型中的更新功能

public function feedback_update($data){

$this->db->set($data); 
$this->db->where("id", $old_id);
$this->db->update('feedback_table', $data);

}

基于这个问题,我提出了这个简单的解决方案。为了能够获取id并将其传递给您的
ajax
调用,您只需在
标记中添加
数据id

仔细看看下面

<td id="tdname" data-id="<?php echo $r->id ?>" ><?php echo $r->id; ?></td>

最后,在控制器中添加
$id
参数。

基于这个问题,我提出了这个简单的解决方案。为了能够获取id并将其传递给您的
ajax
调用,您只需在
标记中添加
数据id

仔细看看下面

<td id="tdname" data-id="<?php echo $r->id ?>" ><?php echo $r->id; ?></td>

最后,在控制器中添加
$id
参数。

首先更改$data数组(),如下所示:

 $data = array(
 'data-user' => $r->id, //ID of the row
 'name'=>'status',
 'row' => '12px',
 'id' => 'status',
 'selected'=>'none',
'class'=>'statusClass'
);
  $(".statusClass").each(function(index, element) {
    $(this).on('change', function(e) {
        var id = $(this).data('user');
        var status = $(this).val(); 
        console.log(id);
        console.log(status);
        // your ajax stuff go as usual
    });
});
您的ajax应该是这样的:

 $data = array(
 'data-user' => $r->id, //ID of the row
 'name'=>'status',
 'row' => '12px',
 'id' => 'status',
 'selected'=>'none',
'class'=>'statusClass'
);
  $(".statusClass").each(function(index, element) {
    $(this).on('change', function(e) {
        var id = $(this).data('user');
        var status = $(this).val(); 
        console.log(id);
        console.log(status);
        // your ajax stuff go as usual
    });
});

首先更改$data数组()如下:

 $data = array(
 'data-user' => $r->id, //ID of the row
 'name'=>'status',
 'row' => '12px',
 'id' => 'status',
 'selected'=>'none',
'class'=>'statusClass'
);
  $(".statusClass").each(function(index, element) {
    $(this).on('change', function(e) {
        var id = $(this).data('user');
        var status = $(this).val(); 
        console.log(id);
        console.log(status);
        // your ajax stuff go as usual
    });
});
您的ajax应该是这样的:

 $data = array(
 'data-user' => $r->id, //ID of the row
 'name'=>'status',
 'row' => '12px',
 'id' => 'status',
 'selected'=>'none',
'class'=>'statusClass'
);
  $(".statusClass").each(function(index, element) {
    $(this).on('change', function(e) {
        var id = $(this).data('user');
        var status = $(this).val(); 
        console.log(id);
        console.log(status);
        // your ajax stuff go as usual
    });
});

在更新链接中回显id值。示例:
where在更新链接中。我正在使用AJAX。我希望在用户单击特定行的下拉列表并使用AJAX发送和处理它时传递行ID。我是新来的,如果我不清楚,道歉!!您可以发布解析后的html吗?您需要在下拉列表中添加一些内容,如
data id=”“
,然后在jquery中调用它,并将更新链接中的id值传递给ajaxecho。示例:
where在更新链接中。我正在使用AJAX。我希望在用户单击特定行的下拉列表并使用AJAX发送和处理它时传递行ID。我是新来的,如果我不清楚,道歉!!您可以发布解析后的html吗?您需要在下拉列表中添加一些内容,如
data id=”“
,然后在jquery中调用它,并将其传递给显示的ajaxya id。但它只显示第一个值,即1。有人来帮忙吗,克劳迪斯!?如果dbya id中有多个id,则该id将循环显示。但它只显示第一个值,即1。有人来帮忙吗,克劳迪斯!?如果您的数据库中有超过1个id,则id将循环。非常感谢您的朋友!!这实际上已经解决了,但您能告诉我下面的代码实际做了什么吗/**.each(函数(索引,元素){$(this).on('change',函数(e){**/.每一个都是jquey方法,设计用来让DOM循环它,当我们点击它时,选择特定元素的属性,因为这里很多下拉列表都有相同的类名,它检索我们想要更改的下拉列表的属性。更多信息,请看谢谢,伙计!!这实际上已经解决了,但是你能告诉我下面代码d的内容吗oes/**.each(function(index,element){$(this).on('change',function(e){**/.each是一种jquey方法,设计用于使DOM循环它,当我们单击它时选择特定元素的属性,因为这里许多下拉列表具有相同的类名,它检索我们想要更改的下拉列表的属性。有关更多信息,请参阅