2011-12-28 47 views
1

我有表在WordPress管理面板:如何将表值保存到数组中?

<tr> 
    <td><input style="width:80%" type="text" name="ism" value="" /></td> 
    <td><input style="width:80%" type="text" name="par" value="" /></td> 
    <td><input style="width:80%" type="text" name="mar" value="" /></td> 
    <td><input style="width:80%" type="text" name="akc" value="-" /></td> 
    <td><a style="cursor:pointer;" onclick="nqsaddtr(this)">Add</a></td> 
</tr> 

它看起来像:

enter image description here

表可以有行的数量不受限制。

我想保存数组中的所有值并将结果保存到数据库中。

我有一个代码(它不工作):

$per = array(); 
    foreach($_POST['ism'] as $prod) { 
    $ism = $_POST['ism'][$i]; 
    $par = $_POST['par'][$i]; 
    $mar = $_POST['mar'][$i]; 
    $akc = $_POST['akc'][$i]; 
    $per = array('post_id'=>$post_id,'ismatavimai'=>$ism,'parametras'=>$par,'marke'=>$mar,'akcijos'=>$akc); 
    } 

/* update */ 
if (!empty($prev)) $wpdb->update($wpdb->produktas,$upd,array('post_id'=>$post_id)); 
else { $upd['post_id'] = $post_id; $wpdb->insert($wpdb->produktas,$per); } 

它节省了空第一行(没有任何价值,只是张贴ID)。

$per = array(); 
    $ism = $_POST['ism']; 
    $par = $_POST['par']; 
    $mar = $_POST['mar']; 
    $akc = $_POST['akc']; 
    $per = array('post_id'=>$post_id,'ismatavimai'=>$ism,'parametras'=>$par,'marke'=>$mar,'akcijos'=>$akc); 

这是一个工作,但它当然会保存第一行的结果。

我怎样才能使一切工作?

回答

2

务必:

 

$yourArr = array(); 
$i = 0; 
foreach($_POST['ism'] as $prod) { 
    $ism = $_POST['ism'][$i]; 
    $par = $_POST['par'][$i]; 
    $mar = $_POST['mar'][$i]; 
    $akc = $_POST['akc'][$i]; 
$per[$i]["post_id"] = $post_id; 
     $per[$i]['ismatavimai'] =$ism; 
     $per[$i]['parametras']=$par; 
     $per[$i]['marke']=$mar; 
     $per[$i]['akcijos']=$akc; 
     $i++; 
    } 

 
0

你需要生成动态的名称为您的输入框,像

<tr> 
    <td><input style="width:80%" type="text" name="ism1" value="" /></td> 
</tr> 
<tr> 
    <td><input style="width:80%" type="text" name="ism2" value="" /></td> 
</tr> 
<tr> 
    <td><input style="width:80%" type="text" name="ism3" value="" /></td> 
</tr> 

,那么你可以提取它像

$ism1 = $_POST['ism1']; 
$ism2 = $_POST['ism2']; 

基本上你需要添加你的代码在循环中

0

您的表单元素不会为post变量生成数组。

尝试:

<td><input style="width:80%" type="text" name="ism[]" value="" /></td> 
<td><input style="width:80%" type="text" name="par[]" value="" /></td> 
<td><input style="width:80%" type="text" name="mar[]" value="" /></td> 
<td><input style="width:80%" type="text" name="akc[]" value="-" /></td> 
<td><a style="cursor:pointer;" onclick="nqsaddtr(this)">Add</a></td>