1

ボタンがクリックされるたびに配列を localStorage に保存する関数があります。ボタンは複数回クリックされ、このファイルの別のページにある PHP にこの配列リストを配置する必要があります。

ありがとう

a.js (この関数はページの onLoad をリッスンします)

    function doFirst(){
    var button = document.getElementById("button");
    button.addEventListener("click", save, false);

    var buttons = document.getElementById("clear");
    buttons.addEventListener("click", clear, false);

    var buttonss = document.getElementById("submittodb");
    buttonss.addEventListener("click", toPHP, false);

        $.ajax({
            method: 'post',
            dataType: 'json',
            url: 'edit.php',
            data: { items: oldItems }, //NOTE THIS LINE, it's QUITE important
            success: function() {//some code to handle successful upload, if needed
            }
        });

        }

        function save(){

        var oldItems = JSON.parse(localStorage.getItem('itemsArray')) || [];

        var newItem = {
           'num': document.getElementById("num").value,
            'methv': document.getElementById("methv").value,
            'q1': document.getElementById("q1").value,
            'q2':document.getElementById("q2").value,
            'q3':document.getElementById("q3").value,
            'q4':document.getElementById("q4").value,
            'comm':document.getElementById("comm").value,

        };
        oldItems.push(newItem);

        localStorage.setItem('itemsArray', JSON.stringify(oldItems));}


edit.php


$parsed_array = json_decode($_POST['items']);

and i get the error: Notice: Undefined index: items in /home/project/edit.php on line 9
4

3 に答える 3

4

この配列を PHP に渡すには、次のことを行う必要があります。

  1. JSONエンコードする
  2. AJAX または POST リクエストを PHP に送信する
  3. 渡された配列を PHP 配列に解析します

使用している場合 (使用しjQueryていない場合は開始する必要があります。これは非常に便利なツールです)、手順 (1) と (2) は次のように簡単です。

$.ajax({
    method: 'post',
    dataType: 'json',
    url: 'the URL of PHP page that will handle the request',
    data: { items: oldItems }, //NOTE THIS LINE, it's QUITE important
    success: function() {//some code to handle successful upload, if needed
    }
});

PHPでは、渡された配列を次のように解析できます

$parsed_array = json_decode($_POST['items']);

と の間には直接接続が{ items: oldItems }あり$_POST['items']ます。JavaScript呼び出しでパラメーターに指定する変数の名前は、最終的に$_POST配列内のキーの名前になります。したがって、javascript で使用するだけでは、すべてのエンティティが配列data: oldItemsの周りに散らばってしまいます。$_POST

$.ajaxjson_decodeの詳細を参照してください。

于 2013-03-12T20:48:15.460 に答える
0

AJAX 関数 (jQuery を使用) を作成し、JSON データをサーバーに送信してから、PHP 関数/メソッドを使用してそれを管理できます。

基本的に、クライアント (ブラウザー) からデータベースがホストされているサーバーにデータを送信する必要があります。

于 2013-03-12T20:42:52.527 に答える
0
  1. JSON.stringify(oldItems);json 文字列を作成するための呼び出し

  2. AJAX を使用して POST 要求を実行します。

おそらく最も簡単な方法は、jQuery を使用することです。

$.post('http://server.com/url.php', { items: JSON.stringify(oldItems) }, function(response) {
  // it worked.
});
于 2013-03-12T20:44:25.910 に答える