2011-12-28 12 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

あなたは基本的にあなたが追加する必要があり、あなたは

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

のようにそれを抽出することができ

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

のようなあなたの入力ボックスの動的な名前を生成する必要がありますループ内のコード

0

フォーム要素がポスト変数の配列を生成していません。

試してみてください。

<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> 
関連する問題