我使用javascript和php创建了一个表单。我使用了像
这样的文本框 <input type="textbox" name="listid" value="" />
我会从$ _POST ['listid']得到一个像4,6,12,9等数组;我可以使用序列化将此值插入数据库,并通过反序列化来检索它。但我需要做的是,为listid = 4插入1,为listid = 6插入2,为listid = 12插入3,为listid = 9插入4。我用过
$count=0;
foreach($_POST['listid]' as $id)
{
$count++;
$db->update('lists',array('order'=>$count),'id ='.$db->quote($id));
}
但它不起作用。仅更新第一个值(listid = 4)
我需要做什么?有人请帮帮忙吗?
谢谢!
答案 0 :(得分:0)
试试这个。
<?php
$count=0;
foreach($_POST['listid'] as $id)
{
$count++;
$db->update('lists',array('order'=>$count),'id ='.$db->quote($id));
}
?>
删除$ count = 0;超出for循环
答案 1 :(得分:0)
你可以尝试
$count=0;
foreach($_POST['listid]' as $id)
{
$count++;
$data = array('order'=>$count);
$db->update('lists',$data,$this->_db->quoteInto('id = ?',$id));
}
我希望这可能有效
答案 2 :(得分:0)
你不会从$ _POST ['listid]收到一个数组,你会得到一个字符串。首先将该字符串拆分为数组,然后实现逻辑。
$arrListId = split(',', $_POST['listid]);