在 PHP 数据库中插入 jQuery 转发器行

Insert jQuery repeater row in PHP database

我有 1 行有 5 个表单域。用户可以 add/remove 行。它的可重复行。 现在我想用 PDO php.

将这些字段存储到数据库中

对于正常值,我正在使用此代码,但我对转发器字段感到困惑。

$data = array(
    'bill_no' => trim($_REQUEST['bill_no']),
    'from_name' => trim($_REQUEST['from_name']),
    'to_name' => trim($_REQUEST['to_name']),
    'date' => trim($_REQUEST['date_bill']),
    'mr_or_ms' => trim($_REQUEST['mr_or_ms']),
);

if($crud->InsertData("bill",$data)) {
    header("Location: add-bill.php");
}

插入函数:

public function InsertData($table,$fields) {
    $field = array_keys($fields);

    $single_field = implode(",", $field);
    $val = implode("','", $fields);

    try {
        $query = $this->db->prepare("INSERT INTO ".$table."(".$single_field.") VALUES('".$val."')");

        $query->execute();
        return true;
    } catch(PDOException $e) {
        echo "unable to insert data";
    }
}

请帮我插入字段。谢谢

更改表单字段的名称,在末尾添加 [] 以获得 PHP 数组。例如,将 bill_no 更改为 bill_no[]。像这样:

foreach($_REQUEST['bill_no'] as $row_number => $row_content){
   $data = array(
    'bill_no' => trim($_REQUEST['bill_no'][$row_number]),
    'from_name' => trim($_REQUEST['from_name'][$row_number]),
    'to_name' => trim($_REQUEST['to_name'][$row_number]),
    'date' => trim($_REQUEST['date_bill'][$row_number]),
    'mr_or_ms' => trim($_REQUEST['mr_or_ms'][$row_number]),
  );
  $crud->InsertData("bill",$data);
}

这假设浏览器没有混淆字段的顺序,因此在添加行时向表单字段添加唯一名称可能更好。

此外,根本没有输入数据验证,请确保您正确转义了所有数据。

我是用这个方法做的

$total=count($_POST['description']);
for($i=0; $i<$total; $i++){
    $data1 = array(
        'bill_no' => trim($_POST['bill_no']),
        'description' => trim($_POST['description'][$i]),
        'nos' => trim($_POST['nos'][$i]),
        'nos_day' => trim($_POST['nos_day'][$i]),
        'pay' => trim($_POST['pay'][$i]),
        'weekly_off' => trim($_POST['weekly'][$i]),
        'hra' => trim($_POST['hra'][$i]),
        'rs' => trim($_POST['rs'][$i]),
        'ps' => trim($_POST['ps'][$i]),

    );
    $crud->InsertData("bill_details",$data1);
}