1

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)

私は何をする必要がありますか?誰か助けてください??

ありがとう!

4

3 に答える 3

0

あなたが試すことができます

$count=0;
foreach($_POST['listid]' as $id)
{   
    $count++;
    $data   =   array('order'=>$count);
    $db->update('lists',$data,$this->_db->quoteInto('id = ?',$id));
}

私はこれがうまくいくことを願っています

于 2012-06-04T06:47:22.287 に答える
0

$_POST['listid] から配列を受け取ることはなく、文字列を取得します。最初にその文字列を配列に分割してから、ロジックを実装します。

$arrListId = split(',', $_POST['listid]);
于 2012-06-04T06:58:45.700 に答える
0

これを試して。

<?php
$count=0;
 foreach($_POST['listid'] as $id)
        {

            $count++;
    $db->update('lists',array('order'=>$count),'id ='.$db->quote($id));

        }

?>

$count=0; を削除します。forループの外

于 2012-06-04T06:08:41.727 に答える