我在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>
看起来像:
表可以包含无限数量的行。
我想保存数组中的所有值并将结果保存在数据库中。
我有一个代码(它没有用):
$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);
这个工作正常,但当然它只保存了第一行的结果。
我怎样才能让一切顺利?
答案 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>