发布不工作

时间:2012-07-20 11:00:48

标签: php javascript jquery

这是我的jscript代码: 当我运行它时,我得不到任何响应,firefox webconsole显示正常

dataS = friendMediaArray; // array?
var jsonS = JSON.stringify(dataS);
$(function() { 
   $("#xbut").click(function() { 
      var data = {}; 
      data.dataArray = friendMediaArray; // I'm setting it as a property here 

      var jsonS = JSON.stringify(data); 
      jQuery.ajax({ 
          type: "GET", 
          data: {type: "stream", namef: jsonS }, 
          url: 'catch.php', 



        success: function (msg) 
                { alert("OK");alert(data); console.log(data); },
        error: function (err)
        { alert(err.responseText)}
    });}); }); 

catch.php

<?php 
if($_GET['type']=='stream'){ 
     $obj = json_decode($_GET['namef']); 
   for($i=0;$obj[$i];$i++){ 
    echo $obj[$i]->{'namef'}." "; 
    } 
} 

json_decode($_GET['namef']); 

?> 

即使使用var_dump($ _ POST)我也未定义 好像什么都没发送

GRT罗伯特

2 个答案:

答案 0 :(得分:1)

您正在使用类型:“GET”,请尝试:

var_dump($_GET);

答案 1 :(得分:1)

dataString = friendMediaArray; // array?

如果你的数据是一个数组,你真的不应该用&#34; string&#34;来命名它!

var jsonString = JSON.stringify(dataString);

现在,您的jsonString是一个真正的字符串,

jsonString[field.name] = field.value; 

将导致。您无法设置原始字符串值的属性。相反,您需要将它们设置为对象的属性,然后可以将其序列化:

$(function() {
   $("#xbut").click(function() {
      var data = {};
      data.dataArray = friendMediaArray; // I'm setting it as a property here
      $.each($(':input').serializeArray(), function(i,field){
           data[field.name] = field.value; 
      });
      var jsonString = JSON.stringify(data);
      jQuery.ajax({
          type: "GET",
          data: {type: "stream", namef: jsonString },
          ...
      });
   });
});

另请注意,当您使用GET作为网址参数发送数据时,$_POST显然会为空。但是,json_decode($_GET['namef']);应该为您提供所需的对象。