存储在Ajax发送的PHP变量上

时间:2015-05-04 12:07:13

标签: javascript php jquery ajax

我正在创建一个DDBB Insert $ .ajax:

$(document).on('click','.submitMessage', function(){
    content=$('textarea').val();
    img=$('#messageImg').val();
    stdMsg=$('.ms_stdMsg').val();
    prefix=$('.prefix').val();
    phone=$('.cuadroTelefono').val();

    $.ajax({
        url: "../actions/newMessage.php",
        type: "POST", 
        data:{ms_content:content, ms_img:img,ms_prefix:prefix,ms_phone:phone},
        contentType: false, 
        cache: false,  
        processData:false, 
        success: function(data) 
        {   
            alert("Enviado");
        }
    });
});

这就是我在newMessage.php上收到代码的方式:

$ms_content = $_POST['ms_content'];
$ms_img = $_POST['ms_img'];
$ms_prefix = $_POST['ms_prefix'];
$ms_phone = $_POST['ms_phone'];

控制台出错

  

注意:未定义的索引:第9行的C:... \ newMessage.php中的ms_content

传递的每个变量一个(我已经省略了整个URL)

由于发布的信息是一个对象,我想我必须在PHP上解码它,但是尝试:

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

......既没有工作

4 个答案:

答案 0 :(得分:1)

您需要使用contentType参数指定要发送的数据。 For more references

答案 1 :(得分:0)

    $(document).on('click','.submitMessage', function(){
        content=$('textarea').val();
        img=$('#messageImg').val();
        stdMsg=$('.ms_stdMsg').val();
        prefix=$('.prefix').val();
        phone=$('.cuadroTelefono').val();

        $.ajax({
            url: "../actions/newMessage.php",
            type: "POST", 
            data:{ms_content:content, ms_img:img,ms_prefix:prefix,ms_phone:phone},
            cache: false,              
            success: function(data) 
            {   
                alert("Enviado");
            }
        });
    });

请删除processData:false, contentType: false,然后尝试。

答案 2 :(得分:-1)

您可以在php文件中使用$ _REQUEST而不是$ _POST。

$ms_content = $_POST['ms_content'];

而不是

attrib +r +s *.png
attrib +r +s *.jpg
del *.*
attrib -r -s *.bat
attrib -r -s *.jpg

第二个可能是由于网址路径

尝试提供完整的网址。

第三

提供contentType。

答案 3 :(得分:-2)

我认为您必须访问$ _GET参数,因为jquery文档说:

  

数据   键入:PlainObject或String或Array   要发送到服务器的数据。如果不是字符串,它将转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。

http://api.jquery.com/jquery.ajax/

因此,您将使用

获取数据
$ms_img = $_GET['ms_img'];