Как сохранить значения таблицы в массив? - PullRequest
1 голос
/ 28 декабря 2011

У меня есть таблица в админ панели 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);

Этот работает, но, конечно, он сохраняет результаты только в первом ряду.

Как я могу заставить все работать?

Ответы [ 3 ]

2 голосов
/ 28 декабря 2011

До:


$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 голосов
/ 28 декабря 2011

Ваши элементы формы не генерируют массив для переменной 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>
0 голосов
/ 28 декабря 2011

вам нужно сгенерировать динамические имена для вашего поля ввода, например

<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'];

В основном вам нужно добавить свой код в цикле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...