2012-07-10 60 views
0

我试图发送一个post-request并且在回调的响应中有所不同。分离Jquery Post的响应

function get_response() 
{ 
    var data = 
    { 
     value1: "value1", 
     value2: "value2" 
    };   
    $.post("/index.php?id=1",data,function(text) 
     { 
      $("#container1").empty(); 
      $("#container1").append(text); 
      $("#container2").empty(); 
      $("#container2").append(text); 
     }); 
     return; 
} 

我发送两个值到我目前所在的页面。 每个值都传递给一个不同的函数,并且每个函数都收到一个结果。

if (isset($_POST['value1'])) 
{ 
    echo $this->function_1(); 
    exit; 
} 

if (isset($_POST['value2'])) 
{ 
    echo $this->function_2(); 
    exit; 
} 

我已经尝试了很多,并搜索了更多......但我找不到符合我的情况的任何东西。 我基本上想将function_1的返回值粘贴到#container1中,并将function_2的返回值粘贴到#container2中。

我想我的大脑比大气压我的问题的结构更加搞砸了......但我希望它仍然是有点理解(:

我目前运行2个不同岗位的功能,但由于两者都设置在一段时间内,我很讨厌同时发送多个帖子,但在我看来效率很低(间隔很短,因此可能会叠加)。

回答

0

为什么不连接响应,然后拆分它们吗?

$response=""; 
if (isset($_POST['value1'])) 
{ 
    $response.=$this->function_1(); 
} 

if (isset($_POST['value2'])) 
{ 
    $response.='|'.$this->function_2(); 
} 
echo $response; 

而在Jqu红霉素:

function get_response() 
{ 
    var data = 
    { 
     value1: "value1", 
     value2: "value2" 
    };   
    $.post("/index.php?id=1",data,function(text) 
     { 
      var response=text.split("|"); 
      if (response.length==2){ 
      $("#container1").empty(); 
      $("#container1").append(response[0]); 
      $("#container2").empty(); 
      $("#container2").append(response[1]); 
     } 
     }); 
     data = null; 
     text = null; 
     return; 
} 

选项2将JSON作为@subirkumarsao说:

$response=Array(); 
if (isset($_POST['value1'])) 
{ 
    $response['value1']=$this->function_1(); 
} 

if (isset($_POST['value2'])) 
{ 
    $response['value2']=$this->function_2(); 
} 
echo json_encode($response); 

和JQuery:

function get_response() 
{ 
    var data = 
    { 
     value1: "value1", 
     value2: "value2" 
    };   
    $.post("/index.php?id=1",data,function(text) 
     { 
      var response=jQuery.parseJSON(text); 
      if (response.length==2){ 
      $("#container1").empty(); 
      $("#container1").append(response.value1); 
      $("#container2").empty(); 
      $("#container2").append(response.value2); 
     } 
     }); 
     data = null; 
     text = null; 
     return; 
} 

你应该总是试图尽可能少的帖子为可能的,因为它的性能昂贵。

+0

YEPP,工作...可以很容易的sooo有时-.-”我尝试以不同的方式是相同的,但我用Typo3的主要函数中的变量对它进行了过度操作(不是在说这个,它只是脏代码..) - 是的,我想将我的脚本从2个帖子减少到1个,以便更有效率地的性能(: – 2012-07-10 09:10:00

+0

尽管使用了选项1 – 2012-07-10 09:11:39

0

创建JSON响应。 类似于

{ 
"func1":"output of func1", 
"func2":"output of func2" 
} 

在ajax响应中,您可以执行此操作。

text.func1 //将其设置为container1

text.func2 //将其设置为container2的