4

HTMLテーブルの行をphp配列に保存してから、配列をデータベースに保存しようとしています。

<form action="" method="post">
        <table class="widefat" id="theTable">
                        <thead>
                                <tr>
                                   <th>Level Identifier</th>
                                    <th>Non-logged in message</th>
                                    <th>Logged in message</th>
                                </tr>
                        </thead>
                        <tbody>

                                  <tr>
                                    <td><input type="text" value="" style="height: 19px;background-color: white;font-size:10px;"/></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1">This is your custom message template</textarea></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1">This is your custom message template</textarea></td>
                                  </tr>

                                   <tr>
                                    <td><input type="text" value="" style="height: 19px;background-color: white;font-size:10px;"/></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1"></textarea></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1"></textarea></td>
                                  </tr>

                        </tbody>    
                    </table> 
                </form>

各行データを取得して配列要素に保存し、最終的に配列を db に保存するにはどうすればよいですか? ありがとう

4

2 に答える 2

7

各行の HTML を保存する場合:

JQuery を使用します。

var rowsArray = {};
var i = 0;
$('#theTable tr').each(function({
    rowsArray[i] = $(this).html(); // if you want to save the htmls of each row
    i++;
});

次に、ajaxを使用してこのデータを投稿します

$.ajax({
   type: 'post',
   url: URL_TO_UR_SCRIPT,
   data: { myarray : rowsArray },
   success: function(result) {
     //ur success handler OPTIONAL
   }
});

PHP 側では次のようにします。

$array = isset($_POST['myarray']) ? $_POST['myarray'] : false;
if ($array) { 
  $array = serialize($array);
  //UPDATE YOUR DATABASE WITH THIS SERIALIZED ARRAY
}

PHP配列をデータベースに保存できないため、シリアル化する必要があり、DBから取得するときにunserialize ()を使用します

入力エリアとテキストエリアの値を保存したい場合は、各要素の名前を設定し、スクリプトで $_POST を使用してそれらにアクセスする必要があります。

 $array = array;
 foreach($_POST as $key => $value) {
    //sanitize your input here
    $array[$key] = $value;
 }
 $serialized = serialize($array);
 //save serialized array in your DB

注/ヒント: 参考 までに、フォーム要素をレイアウトするために html テーブルを使用しません。データ表現にはテーブルを使用する必要があります。divcssを使用して同じことを簡単に行うことができます

于 2013-03-19T18:24:43.780 に答える
0

これは基本的な PHP の使用法です。入力に名前を付けると、フォームを送信すると、送信されたページのスクリプトが機能します。

あなたの価値観は

$_POST 

配列。したがって、それらにアクセスするには

$_POST['input_name']

名前を呼び出して各値を調べ、それに応じてデータベースに入れる必要があります。

于 2013-03-19T18:20:46.887 に答える