【发布时间】:2021-08-30 05:44:08
【问题描述】:
我有一个使用 CodeIgniter 3 制作的项目,我在其中创建了 2 个视图页面。在第一页上,用户看到一个包含列(订单号、客户、订单状态、创建日期和 cmets)的表格,但我只显示挂单。在第二页上,我有确切的列,但我只显示已完成的订单。
现在我要做的是在第一页上,当我选中我想要的每一行中的复选框并按下 Change Status 按钮之后更改数据库中的状态。我已经设法通过这样做来传递检查的行的 ID:
function change_status(x){
var vals = [];
jQuery('.checkorders:checked').each(function(){
vals.push(jQuery(this).val());
});
$.ajax({
type: "POST",
url: '<?php echo base_url();?>change_status.php' ,
data:{'myData':vals,'type':x},
success: function(response)
{
alert('ok');
}
});
}
现在change_status.php中的代码是
<?php
include('application/views/backend/admin/dbc.php');
mysqli_query($conn,"SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
$type=$_POST['type'];
$mydat= $_POST['myData'];
foreach($mydat as $dt)
{
$sql0 = "SELECT * FROM orders WHERE id=".$dt." order by id ASC";
$result0 = $conn->query($sql0);
if ($result0->num_rows > 0) {
while($row0 = $result0->fetch_assoc()) {
$orders_id[]=array("id"=>$row0['id']);
echo $row0['id']."<br/>";
}
}
}
if($type==1)
$out = "**";
{
foreach($orders_id as $ID)
{
$out.= $elispisID['id']." - ";
//$this->db->where('id', $elispisID['id']);
//$this->db->update('elipsis', array('status' => 0));
}
echo $out;
$output1="csv";
$output2="csv/patoures/";
$output3=$output2.date("Y")."/";
$output4=$output3.date("m");
if (!is_dir($output1)) {mkdir($output1,0777);}
if (!is_dir($output2)) {mkdir($output2,0777);}
if (!is_dir($output3)) {mkdir($output3,0777);}
if (!is_dir($output4)) {mkdir($output4,0777);}
$output_forder=$output4."/".date("dHi");
file_put_contents($output_forder,$out);
}
$conn->close();
?>
$out 变量是为了帮助我查看我是否正确传递了 id,因为每次我检查复选框并按下更改状态按钮时,它都会创建一个带有选定 id 的文件。但是,如果我取消注释我尝试更新数据库的 2 行,它不会更新它或打印任何内容
有人知道我做错了什么吗?
【问题讨论】:
-
奇怪的是你为什么不使用代码点火器数据库函数?实际上,我看到您在注释掉的行中。但页面的其余部分是香草 php/mysql
-
好的,这里有一些事情需要处理,但是 codeigniter
db->东西不起作用的原因是因为这需要在控制器或模型中。如果你愿意,我可以向你展示它的外观 -
如果你使用的是 venila php 那你为什么要使用 codeignitor,它的 MVC
标签: php mysql database codeigniter codeigniter-3