php - 我想使用 Ajax 将 id 从 View 传递到 Codeigniter 中的 Controller 并更新数据库中的下拉选择

标签 php jquery mysql ajax codeigniter

我想从表中传递每行的 ID,并使用 AJAX 将其传递到 Controller ,并希望更新数据库中该行的下拉选择。

我在下拉列表中所做的选择被传递到 Controller ,但不确定如何根据其每行条件在数据库中更新。非常感谢您的帮助!!!

下面是我的用户界面的屏幕截图

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

Screen Shot with ID and Dropdown

查看文件

<?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>
        

AJAX代码

$(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");
}
}

});
});
}); 

Controller

public function user_data_status_submit(){

$data = array(
'status' => $this->input->post('status'),
'id'
);
//Either you can print value or you can send value to database
echo json_encode($data);
$this->login_database->feedback_update($data);

}

更新模型中的函数

public function feedback_update($data){

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

}

最佳答案

首先像这样更改您的 $data array() :

 $data = array(
 'data-user' => $r->id, //ID of the row
 'name'=>'status',
 'row' => '12px',
 'id' => 'status',
 'selected'=>'none',
'class'=>'statusClass'
);

你的ajax应该是这样的:

  $(".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
    });
});

关于php - 我想使用 Ajax 将 id 从 View 传递到 Codeigniter 中的 Controller 并更新数据库中的下拉选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320566/

相关文章:

javascript - 检查是否启用了复制和粘贴

PHP 在同一连接上调用第二个 MySQL 存储过程或查询?

php - 如何选择然后插入phpmyadmin?

php - 找一本讲述实用技术的 PHP 书籍

PHP for 循环逻辑(有心理障碍)

Jquery 选择表中的所有复选框

jquery - MVC 3 Ajax.ActionLink 与 JQuery UI 确认对话框

mysql - 将脚本传输到新服务器后,SQL 和文件系统之间的编码文件名不匹配

mysql - 尝试删除外键时,MYSQL ASP.NET Core Angular 项目中的 Entity Framework 失败,并在 CONSTRAINT 附近的语法中出现 MySqlException 错误

使用命名占位符时 PHP/SQL 插入错误