0

こんにちは、jquery ajaxでこれを取得しようとしていますが、正しく実行しているかどうかわかりません...本当にすべてを試してみましたが、基本的にダミーのjquery.ajaxを見なければなりませんでしたが、まだ動作していません...

function addMix(mix) {
    alert(mix);//Here I get my array of int's
    var myArr = JSON.stringify(mix);
    $.ajax({
        type:"POST",
        dataType: "json",
        url: "add.php",
        data: myArr,
        success: function(data) {
            alert("Success: " + data);
            console.log(data);
        },
        error: function(x,y,z){
            alert("Error: " + x + ", " + y + ", " + z);
            console.log(x, y, z);
        },
        complete: function(data){
            alert("Complete: " + data);
            console.log(data);
        }
    });
 }

PHP:

<?php
header('Content-Type: application/json');
include "con.php";

$mix = json_decode($_POST);

foreach($mix as $index => $val){
$temp = array();

foreach($temp[$index] as $key => $value){
        array_push($temp, $value);
    }
}

$sql = "INSERT INTO mg_test(value)
    VALUES('$temp')";

mysql_query($sql);

echo json_encode($temp);

mysql_close($con);

?>

見返りとして得られるのは、alert(mix) = 2,1,3,2 だけです。

成功: null

完了: [オブジェクト オブジェクト]

そして、私はDBに何も得ません...

誰かが私を正しい方向に向けることができますか? 私は何を間違っていますか?

4

5 に答える 5

1

$.ajax ドキュメントに基づく:

data オプションには、key1=value1&key2=value2 の形式のクエリ文字列、または {key1: 'value1', key2: 'value2'} の形式のオブジェクトを含めることができます。

stringify をスキップして、オブジェクトをそのままデータ フィールドに渡します。

于 2013-08-03T11:02:55.400 に答える
1

なぜあなたはJSON.stringify(mix)電話でやります$.ajaxか?

オブジェクト/配列またはそこにあるものを配置するだけです!

修正された JS は次のとおりです。

function addMix(mix) {

    $.ajax({
        type:"POST",
        dataType: "json",
        url: "add.php",
        data: { mix: mix }, // <--- this
        success: function(data) {
            alert("Success: " + data);
            console.log(data);

        ...
    });
}

そしてPHPでは、使用する必要があります

$mix = json_decode($_POST['mix']);

それ以外の:

$mix = json_decode($_POST);

また、このクエリは機能しないと確信しています。

$sql = "INSERT INTO mg_test(value) VALUES('$temp')";

$tempは配列です - そこに置くだけでなく、それのクエリを作成する必要があります。それが魔法のように機能することを願っています。それはしません。

于 2013-08-03T10:47:05.367 に答える
0

ajax 呼び出しにデータを間違って送信しています。JSON.stringify() を使用しないでください。代わりに、このようにリクエスト パラメータを送信してください。

type:"POST",
dataType: "json",
url: "add.php",
data: { "requestData": mix },
success:function(data){
  console.log(data);
}

PHPファイルで。これを次のように取得します

$mix = json_decode($_POST['requestData']);
于 2013-08-03T10:54:45.130 に答える
0

alert("Complete: " + data);(ご覧のとおり)[Object Object]を返すオブジェクトに警告しないでください。だから何と言うconsole.log(data);

于 2013-08-03T11:10:20.587 に答える