2016-04-05 40 views
0

現在我正在嘗試創建一個客戶管理系統,我可以同時添加多個客戶。foreach()如何獲得該組「輸入」中每個文本框的值

我有一個javascript腳本,它允許我添加新的行信息,我可以填寫,關於客戶,但我的問題在於,我如何獲取所有信息,分別爲每一行。

一個HTML的例子是這樣的:

<input type="text" name="name[]" /> 
<input type="text" name="lastname[]" /> 
<input type="text" name="dob[]" /> 
<hr> 
<input type="text" name="name[]" /> 
<input type="text" name="lastname[]" /> 
<input type="text" name="dob[]" /> 

這可以一直下去,直到永遠,直到我不需要更多的領域。

,因爲我需要單獨輸入信息到數據庫中的每一行,我需要一個腳本來自動取這3個領域,並投入到MySQL命令這樣

mysqli_query($con, "INSERT INTO customers (name, lastname, dob) VALUES ('" . $name . "', '" . $lastname . "', '" . $dob . "'"); 

,這需要爲每一行都有。

我試圖做一些foreach和嵌套的foreach,但我似乎無法使其工作。

在此先感謝。

+0

請顯示,你到目前爲止嘗試過(=代碼)。 – djot

回答

1

我會改變你輸入的名稱,如

<input type="text" name="data[n][name]" /> 
<input type="text" name="data[n][lastname]" /> 
<input type="text" name="data[n][dob]" /> 

,其中從0 n開始到什麼。那麼你可以使用一個foreach:

foreach($_POST['data'] as $data) { 
    // $data['name'] 
    // $data['lastname'] 
    // $data['dob'] 
} 
+0

我把它添加到一個JavaScript自動計數的地方,它的工作原理非常完美!非常感謝你。 – Ismail

1

使用準備語句而不是連接字符串。然後使用foreach循環獲取每個$_POST參數數組的相應值。

$stmt = mysqli_prepare($con, "INSERT INTO customers (name, lastname, dob) VALUES (?, ?, ?)"); 
mysqli_bind_param($stmt, "sss", $name, $lastname, $dob); 

foreach ($_POST['name'] as $i => $name) { 
    $lastname = $_POST['lastname'][$i]; 
    $dob = $_POST['dob'][$i]; 
    mysqli_execute($stmt); 
} 
相關問題