0

私の問題は基本的に、js 側と PHP 側の両方で適切な構文 (以前は JSON を使用したことがない) を理解できないことですが、js を理解したら、PHP 側を自分で理解できると思います。

論理的な目標: 変数 id# と定数文字列 'del' を格納する JSON データを送信し、成功/エラー情報を含む JSON データを受信し、成功/エラーに基づいて結果を別の html にエコーします。私は、受信した jsonの送信と処理に関する JavaScript コードを学習することに最も興味があります。PHP の処理は、自分で理解するのがより簡単になるはずです (うまくいけば)。

編集- 成功/エラーと言うとき、真のハードエラーではなく、PHPコードでそれを決定したい. ifしたがって、jQuery のコールバック関数部分のステートメントと考えたほうがよいかもしれません。

$(".admin_ru_delete_button").click(function() { //this code is not working
    id = ($(this).attr("id"));
    dataJson = { "id":id, "type":"del" };
    $.post(
        'ajax/justPosted_AJAX.php',
        dataJson,
        function(data){
            //$("#admin_errors").html('');
            //$("#admin_success").html('');
        }
      , "json");
  return false;
});

お時間を割いていただき、ありがとうございました。

4

2 に答える 2

1

データは JavaScript オブジェクトから POST 変数に変換されます。JSON はこれとは関係ありません (PHP -> JS 部分を除く)。

if (!empty($_POST['id'])) {
    if (!empty($_POST['type'])) {
        echo json_encode(array('success' => true, 'id' => $_POST['id']));
    } else {
        echo json_encode(array('success' => false, 'error' => 'type missing'));
    }
} else {
    echo json_encode(array('success' => false, 'error' => 'id missing'));
}

およびコールバック(コンテンツタイプ「json」を指定したため、自動的にオブジェクトに変換されます)で:

function(data){
    if (data.success) {
        alert('Yay! The ID I sent was ' + data.id);
    } else {
        alert(data.error);
    }
}

JSON が返されないときにエラーが必要な場合は、次を使用できます$.ajax

$.ajax(
    'ajax/justPosted_AJAX.php',
    {
        dataType: 'json',
        data: dataJson,
        success: function(data){
            if (data.success) {
                alert('Yay! The ID I sent was ' + data.id);
            } else {
                alert(data.error);
            }
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('The AJAX call failed: ' + textStatus + ' / ' + errorThrown);
        }
    }
);
于 2013-11-08T19:40:07.260 に答える
0

あなたが試すことができます:

Javascript

$(".admin_ru_delete_button").click(function() { 
    id = ($(this).attr("id"));
    $.ajax(
        type: "POST",
        dataType: "JSON",
        url: 'ajax/justPosted_AJAX.php',
        data: { "id":id, "type":"del" },
        success: function(data){
            $("#admin_success").html(data[1] +" "+ data[2]);
        }
        error: function(data){
            console.Log("Error in ajax");
    });
  return false;
});

これは、 を使用して PHP から JSONObject/JSONArray を返すことを前提としていますjson_encode($array)

于 2013-11-08T19:42:01.977 に答える