多字段表单php问题

时间:2012-03-23 20:48:04

标签: php arrays forms field

我有一个包含3个字段的表单

textfield,checkbox,checkbox2

他们是帐号的数组,即 返回[12345]第二[12345]第3 [12345]

我需要提取它们的值和键,但

如果重新调整有值,它会在那里停止并将其放入数据库中。 如果返回为空,请参阅 如果单击任一复选框 如果第3个和第2个没有说对不起3来自2 如果第二次被检查,第三次没有在数据库中更新 如果第二个和第三个被检查更新数据库

有些行没有填写或检查

我没有工作的代码如下:

    <?
if (isset($_POST["update"])) // if it's not set, do nothing.
{
include('cond.php');


$idx['Returned'] = array_keys( $_POST['Returned'] );
$idx['2nd'] = array_keys( $_POST['2nd'] );
$idx['3rd'] = array_keys( $_POST['3rd'] );

for(
     $i = 0;
     $i < min( array_map( 'count', $idx ) );
     $i++   )
    {
    $AN = $idx['Returned'][$i];
    $RET = $_POST['Returned'][$AN];
    $Chk = $idx['2nd'][$i];
    $Val = $_POST['2nd'][$Chk];
    $Chk2 = $idx['3rd'][$i];
    $Val2 = $_POST['3rd'][$Chk2];


//If date is filled in
if(!empty($RET)){

// store it
$doit = "UPDATE `dbname`.`tname` SET `Returned`= '$RET' WHERE `account_number`='$AN'";
mysql_query($doit) or die('mySQL Error: ' . mysql_error());

}else{

//                2nd isn't filled check 3rd
             if (empty($Val)) {

//        3rd is filled in 
               If(!empty($Val2)) {
            print "Third VOR cannot be checked before Second.";
               }else{
//              3rd is not set but 2nd is
                if(empty($Val2)){
                $doit = "UPDATE `dbname`.`tname` SET `Second`='$Val' WHERE `account_number`='$Chk'";
                mysql_query($doit) or die('mySQL Error: ' . mysql_error());
            }else{
//          2nd and 3rd are set
                $doit = "UPDATE `dbname`.`tname` SET `Second`='$Val' ,`Third`='$Val2' WHERE `account_number`='$Chk'";
                mysql_query($doit) or die('mySQL Error: ' . mysql_error());
            }//end if 2
               }//end if
             }//end if


   } 

}}
?>

任何想法是什么或如何确保我更新数据库并且没有警告 //示例警告// 警告:array_keys()期望参数1为数组,在第9行的/home/blah/public_html/blah/blah/insertret.php中给出为null

lilRachie

1 个答案:

答案 0 :(得分:0)

除非您将表单字段命名为数组,例如name="returned[]",否则您收到的值是字符串,而不是数组。

因此$_POST['Returned']将是一个字符串,您需要解析该字符串以获取您要查找的值。