2010-08-27 70 views
0

我知道xmlHttpRequest對象有一個方法send,但我一直在整個這個網站上工作,而且我無法找到關於這個主題的任何半路體面的教程,我的大腦感覺像糊狀物。 Ajax很難。使用Ajax發送數據回到服務器

我想要做的是將數據從一個Javascript文件發送回服務器上的PHP腳本,其中數據只是一個字符串和一個小數字。這可能嗎?爲什麼我找不到關於這個主題的好文章?

tl; dr如何使用send方法將字符串和數字從javascript文件傳遞到php文件?

+0

查看本文的第4部分和第5部分。 http://marcgrabanski.com/articles/jquery-google-maps-tutorial-ajax-php-mysql 不,我不是作者,但無論出於何種原因,我一直認爲這是其中的一個更全面的教程。 – LesterDove 2010-08-27 00:36:38

+0

在什麼事件你想發送一個字符串到PHP腳本? – NAVEED 2010-08-27 00:42:05

回答

8

爲什麼你不使用jQuery或類似的庫?

發送jQuery的一個變量將是這麼簡單:

$.post("save.php", { name: "John", time: "2pm" }); 

在你save.php文件,你可以處理POST變量,如你所願:

$name = $_POST["name"]; 
$time = $_POST["time"]; 

你可以檢查出來: http://jquery.com/

我想你是在浪費你的時間試圖做出自制的方法...

+0

巧妙而簡單。 – 2013-04-06 18:20:49

3

這絕對有可能。這是一個很好組織的tutorial,它引導您瞭解XmlHttpRequest對象,如何設置它以及如何在服務器上使用它。

服務器端代碼是PHP,我更像是一個C#人,這對我來說是完全有意義的。 (也許我應該切換到PHP ??)。

我希望這有助於!祝你好運。

編輯:在回答前面的問題SO,我把這個jsfiddle一起演示如何使用XMLHttpRequest。希望這也有幫助。

0

使用jQuery,您可以使用post method

$.post("test.php", { name: "John", number: 2 }); 

在幕後,這使用xmlHttpRequest,看看源頭上看看他們是如何做到這一點。

1

第1步: 得到jquery。你所要做的就是下載最新的文件並將其包含在你的頁面上。

第2步: 使2個文件:

somepage.html:

<script type='text/javascript' src='jquery.js'></script> 
<script type='text/javascript'> 
$.get("someScript.php", 
    // data to send if you want 
    { 
    'someVar' : 'someValue' 
    }, 
    // receive and do something with response 
    function(response){ 
    alert(response); 
} // function (response) 
); // .get() 
</script> 

someScript.php

<?php 
    echo $_GET['someVar'] . " response!"; 
?> 

第3步: 所有的文件上傳到你的服務器,並去somepage.html

就是這樣。儘管如此,你通常會將該代碼放在某種onclick或其他類型的內容中,具體取決於你想使用ajax的方式。但是那裏的評論很自我解釋。 jquery用於發送ajax請求,並以發送數據到接收請求的服務器端腳本爲例(使用GET方法)。你可以在someScript.php中做任何事情,但在這個例子中,它只是迴應你發送的值。然後jquery接受一些Script.php的回聲,並將它彈出。

+0

btw大多數人(包括我自己)告訴你使用jquery或類似庫的原因是因爲不同的瀏覽器處理ajax對象/請求的方式稍有不同。 jquery和其他框架爲您提供所有的幫助,因此您只需使用單一語法,而不必擔心用戶使用哪個瀏覽器 – 2010-08-27 00:48:19

1

這裏有很多很好的鏈接,所以我不打算再補充一點。就像旁註一樣,你在這裏處理的是一個輕量級的ajaxness :) - 通常你會想從服務器發回一些東西來改變頁面的狀態,以響應第一個頁面發送的內容(實際上有人可能會爭辯說,爲什麼你首先需要ajax,而不是簡單發佈,如果頁面不應該改變 - 但我可以看到有什麼情況可能會出現你想要ajax)。我只是這麼說的,因爲你會遇到很多關於如何處理從服務器發回的東西的內容 - 只要確保你知道這不是你想要做的事情所需要的(我當我知道我能在第一遍中遺漏什麼時,我總是很高興;)

+0

+1同意。從技術上講,您不需要在請求中發送數據,從技術上講,您不需要在響應中發送數據,但由於99%的ajax要發送和/或接收某些數據,因此您通常會看到作爲教程的一部分發送/接收數據的一個例子 – 2010-08-27 00:53:32