如何将表值保存到数组中?

时间:2011-12-28 12:40:26

标签: php wordpress

我在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); }

它保存空第一行(没有任何值,只是post 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);

这个工作正常,但当然它只保存了第一行的结果。

我怎样才能让一切顺利?

3 个答案:

答案 0 :(得分: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++;
  }


答案 1 :(得分: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'];

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

答案 2 :(得分: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>