2012-01-24 23 views
1

我希望能夠在onclick狀態下執行php腳本,但每個頁面可能會擁有多個按鈕,每個按鈕都有不同的動作發送。我想要腳本被執行,但我不希望頁面被改變。在AJAX中執行一個帶有變量參數的php腳本?

這是執行一個UDP客戶端來改變遠程box.each按鈕發送一個不同的行動到不同的董事會,實際上我需要發送2個參數到腳本。

這樣的事情我需要發送:set_states.php IP = xxx.xx.xxx.xx & CMD = CR1

thanx的幫助!

+4

剛剛找到一個ajax教程,網上有很多。 – xdazz

回答

1

URL的內容並不重要。重要的是你正在使用的HTML動詞(get,post,delete,put)和你返回的內容類型。網址可以是任何內容。我只是使用一些像jQuery一樣的js庫。看看他們的$ .get,$ .post,$ .ajax函數。

如果您不使用js庫,那麼您需要考慮各種瀏覽器中的所有差異。通常,雖然它是這樣的:http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

在你的情況,我會使用jquery(因爲它會讓你開始非常快)。由於你的變量在url中,而你沒有發送任何其他數據,你可以使用get。通常對於mutators你應該使用post。我認爲這不重要。刪除下面的腳本到您的網頁(根據需要進行修改):

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> 
<script> 
$(function(){ 
    $('#the-id-of-your-button').live('click',function(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
      alert('success'); 
     }); 
    }); 
}); 
</script> 

第一部分:$('#the-id-of-your-button').live('click'手錶瀏覽器在一定意義上,看看是否匹配任何元素出現並綁定一個click事件給他們。在某種意義上,Live會主動等待dom的變化。 Click是處理程序,並且$('#你的按鈕的id)是選擇器。下一部分:

function(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
       alert('success'); 
     }); 
    }); 

是發生點擊事件時發生的情況。我們稱之爲匿名函數。它可以被重寫爲:

function onButtonClick(){ 
     $.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
       alert('success'); 
     }); 
    }); 
    $('#the-id-of-your-button').live('click',onButtonClick()); 

或類似的東西,但這只是爲了幫助您瞭解正在發生的事情。

下一部分:

$.get('set_states.php?ip=xxx.xx.xxx.xx&cmd=CR1',function(return){ 
      alert('success'); 
    }); 

是AJAX請求並執行,如果它成功返回的功能。在這種情況下,它只會提醒我們。

哦另外:$(function(){});包裝一切,告訴我們在頁面準備好時運行腳本。 Soooo一旦頁面準備就緒,我們將打開實時命令來觀察按鈕。你可能不需要它(我知道有些情況下,它不重要,但爲了以防萬一,我把它放在那裏)。

你可能需要調整一下:)。

+0

老實說,我對AJAX來說是全新的,我想執行的腳本根本沒有輸出。所以我不知道最好用什麼? – Speedy2k

+0

呵呵,好吧,快速的經驗法則,幾乎每次你有一個函數/腳本,就像一個增變器(它修改了一些東西,但不一定會返回任何東西),它應該使用一個帖子來完成。獲取意味着您正在檢索數據。 你應該使用後,爲此,你應該使用jQuery,因爲它非常容易。我會更新我的答案。 – Parris

+0

@Parris你應該檢查你的答案...... URL在ajax請求中最重要,jQuery不是一個框架,它是一個庫。 – Tudor

相關問題