2011-12-02 274 views
0

我怎麼能沒有ajaxy善良做到這一點?我需要調試一個麻煩的PHP腳本。沒有形式只是一個圖像,當點擊時執行以下操作。再次jquery發送數據到php沒有ajax

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
}, "json"); 

感謝, 託德

+0

您可以使用cURL從命令行發佈。 –

回答

-1

簡短回答:你不能使用Javascript。

龍答:

如果你想避免使用AJAX,你有兩個選擇:

1)製作一個表單的圖像部分,在點擊提交按鈕隱藏的輸入。

<form method="form.php" action="post"> 
     <input type="hidden" name="action" value="delete"/> 
     ...rest of form... 
    </form> 

2)使圖像成爲鏈接到URL上的輸入的鏈接。像:

form.php?action=delete 

不知道爲什麼你想避免使用AJAX,但。

+0

當然,如果可以完成,您可以直接訪問腳本。 PHP文件存在? AJAX不會魔法解析出來的內容。 –

+0

恩,是的,但是你不能使用jQuery/Javascript發送數據到PHP文件而不使用AJAX。您可以使圖像成爲一個鏈接,並像URL地址一樣在URL中發送數據,或者您可以將其更改爲表單,但無法使用AJAX通過jQuery/Javascript發送數據,至於I'意識到。 – Jemaclus

+0

最後,我不想繞過Ajax,但我有一個PHP腳本,不正確的行事,我需要把一些var_dumps和回聲看到WTF正在進行。 – maddogandnoriko

2

我會/ navTabs.php改變$ _ POST變量在PHP到$ _GET和訪問腳本一樣,直接

php/navTabs.php?name=value&name2=value2 etc 

這樣,你不你的方式沒有阿賈克斯。

1

這種方法將允許你因爲它透明的發生給用戶,並允許一個回調函數使用非常類似於$.post()流:

<img /> 
<iframe id="workFrame" style="display: none"></iframe> 
<form action="php/navTabs.php" target="workFrame" method="post" style="display: none"> 
<input type=hidden id="hidden-1"> 
<input type=hidden id="hidden-2"> 
</form> 

<script> 
$('#hidden-1').val('some value to send to the server'); 
$('#hidden-2').val('some OTHER value to send to the server'); 
$('img').on('click', function() { 
    $('form').trigger('submit'); 
}); 
</script> 

這使用具有隱藏的輸入的形式(因此這可以是透明的給用戶)。您可以使用JavaScript設置隱藏輸入的值,然後以編程方式將表單提交給隱藏的iframe。

這種方法的另一個特點是,你可以綁定到load事件的iframe,並有一個回調函數就像$.post()

$('#workFrame').on('load', function() { 
    var response = $(this).contents().filter('body'); 
    //if you output JSON in your PHP script you could parse this as JSON and do work 
}); 

UPDATE

如果你想do是看到你的PHP腳本的輸出,那麼你可以使用你的開發工具(FireBug等)來查看響應。您還可以在AJAX回調中記錄響應:

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
    console.log(jdata); 
}, "json"); 

如果您當前未使用某些Dev。使用控制檯的工具,我強烈建議檢查FireBug,它將爲您節省大量的時間調試代碼。