2012-03-02 71 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