2011-12-28 3 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); } 

Он сохраняет пустую первую строку (без каких-либо значений, только идентификатор сообщения).

$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

Do:

 

$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.

Try:

<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> 
Смежные вопросы