2012-03-02 72 views
0

下面是我的jQuery代码。它会根据该选项选择相应的选项卡。它发送的HTML数据jquery和php,从我的jquery代码发送的数据不张贴在php

$(document).ready(function(){ 
    var $tabs = $(".tabs").tabs(); 
    $tabs.bind('tabsselect', function(event, ui) { 
     if(ui.index==0) 
     { 
     var data=$('div.display').html(); 
     $.post("echo.php", {index:data},function success(dat){ 
      // returnedData 
      alert(dat); 
     }); 
     } 
     else if(ui.index==1) 
     { 
     var data=$('div.map').html(); 
     alert(data); 
     } 
     else if(ui.index==2) 
     { 
     var data=$('div.system').html(); 
     alert(data); 
     } 
     else if(ui.index==3) 
     { 
     var data=$('div.control').html(); 
     alert(data); 
     } 
    }); 
}); 

我的PHP(echo.php):

<?php 

echo $_POST["index"]; 

?> 

我张贴的HTML代码太:

<div class="tabs"> 
<ul> 
    <li><a href="echo.php"><span><div class="display">DISPLAY DATA</div></span></a></li> 
    <li><a href="#fragment-2"><span><div class="map">MAP</div></span></a></li> 

简短我得值显示数据在$_POST["index"]。欢迎任何其他建议。为什么不工作?

+0

你有没有尝试过一些基本的调试?在调用'$ .post()'的时候在Chrome或Firebug中设置一个断点,看它是否被命中;检查你的服务器日志来验证'echo.php'实际上是否收到请求;将'$ _POST ['index']'记录到echo脚本中的文件中,以查看内容;用curl或telnet调用echo脚本来查看它实际吐出的内容。 – tdammers 2012-03-02 10:46:50

+0

可以给你一个链接在linux中安装萤火虫,我已经尝试了这么多。 – Vibing 2012-03-02 11:05:18

+0

我是jQuery和PHP的初学者,可以帮助用curl或telnet调用echoscript。 – Vibing 2012-03-02 11:08:39

回答

0

使用浏览器控制台调试客户端请求(firebug,dragonfly等),并在服务器上执行一些调试操作。 file_put_contents('log.txt',serialize($ _ POST));

+0

log.txt显示此讯息a:0:{} – Vibing 2012-03-02 11:01:51

+0

'var_dump'或'var_export'可能比'serialize'更有用,但在这种情况下,它意味着'$ _POST'是空阵列。去找出原因。 – tdammers 2012-03-02 11:14:49

+0

如果$ _POST - 为空,则检查javascript的正确请求 – 2012-03-02 18:31:59

0

你回拨$.post应该是匿名函数。试试这个:

$.post("echo.php", {index:data}, function(dat){ 
    // returnedData 
    alert(dat); 
}); 
+0

有什么区别? – Vibing 2012-03-05 08:05:24

+0

你的版本使用'function success(dat)',它应该只是'function(dat)'。 – bfavaretto 2012-03-05 13:11:22

+0

成功只是功能名称....... – Vibing 2012-03-05 14:20:22