2017-08-10 30 views
2

我有不確定的行,每個tr有三個input。也許10行,也許100行,它取決於點擊按鈕(onclick方法是addDvcPeople())。如何發佈插入到表中的數組名稱值?

這裏是我的SQL:

$query="insert into IDC (name,id,phone,cloudeid) VALUES (?,?,?,?)"; 
$stmt = $conn->prepare($query); 

for($i=5;$i<10;$i++) 
{ 
    $stmt->execute(array($_POST['enName".$i."'],$_POST['enID".$i."'],$_POST['enPhone".$i."'],LAST_INSERT_ID())); 
    ...... 
} 

這裏是我的javascript代碼:

function addDvcPeoplef() 
{ 
    newrow = '<tr><td ><input name="enName'+aDWI+'"></td><td ><input name="enID'+aDWI+'"></td><td ><input name="enPhone'+aDWI+'"></td></tr>'; 
    $(newrow).insertAfter($('#staTable tr:eq('+aDWI+')')); 
} 

我的SQL不能工作。我想enName".$i."是錯誤的。而enName"+.$i.+",enName$i是錯誤的。誰能幫我 ?

+0

你到底想幹什麼?您是否想將創建的表上的所有數據添加到數據庫中?或者繼續添加行到令人興奮的HTML表格? – Sand

+0

是否每次點擊都增加aDWI? –

回答

1
$enName=$_POST['enName'.$i]; 
$enID=$_POST['enID'.$i]; 
$enPhone=$_POST['enPhone'.$i]; 

$stmt->execute(array($enName,$enID,$enPhone,LAST_INSERT_ID())); 

嘗試使用這種方式..這是在我的情況。

+0

。姓名$我錯了,它什麼也沒做。 – stack

+1

你確定'POST'成功了嗎?請嘗試打印文章,如'print_r($ _ POST);' –

0

試試這個。改變這一行,

$stmt->execute(array($_POST['enName".$i."'],$_POST['enID".$i."'],$_POST['enPhone".$i."'],LAST_INSERT_ID())); 

對此,

$stmt->execute(array($_POST["enName'.$i.'"],$_POST["enID'.$i.'"],$_POST["enPhone'.$i.'"],LAST_INSERT_ID())); 
0

您可以通過$_POST$_GET發送陣列。這可能會更容易處理。我會做這樣的:

function addDvcPeoplef() 
{ 
    newrow = '<tr><td ><input name="IDC[' + aDWI + '][name]"></td><td ><input name="IDC[' + aDWI + '][id]"></td><td ><input name="IDC[' + aDWI + '][phone]"></td></tr>'; 
    $(newrow).insertAfter($('#staTable tr:eq('+aDWI+')')); 
} 

然後你可以將其插入這樣的:

foreach($_POST['IDC'] as $aDWI => $data) 
{ 
    $stmt->execute(array($data['name'], $data['id'], $data['phone'], LAST_INSERT_ID())); 
    ...... 
}