$ .ajax POST无法正常运行php

时间:2013-08-03 10:33:43

标签: php json jquery

嗨我想用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);

?>

只有我得到的回报是, 警报(混合)= 2,1,3,2

成功:null

完成:[object Object]

我在DB中什么都没得到......

有人能指出我正确的方向吗?我做错了什么?

5 个答案:

答案 0 :(得分: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是一个数组 - 您必须构建它的查询,而不是仅仅把它放在那里并希望它会神奇地工作。它不会。

答案 1 :(得分:1)

基于$ .ajax文档:

  

data选项可以包含表单的查询字符串   key1 = value1&amp; key2 = value2,或{key1:'value1'形式的对象,   key2:'value2'}。

只需跳过stringify并在数据字段中传递对象。

答案 2 :(得分:0)

您正在错误地向ajax调用发送数据。 Donot使用JSON.stringify(),而不是像这样发送请求参数。

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

在PHP文件中。得到这个

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

答案 3 :(得分:0)

不要警告对象alert("Complete: " + data);它(如你所见)返回[Object Object]。什么说console.log(data);

答案 4 :(得分:0)

如果您想在使用

时看到您的对象
console.log(data);

在Google Chrome控制台中,它的可读性会更好。

相关问题