2011-03-01 95 views
0

我需要一個提示,如何使用mootools進行AJAX請求,當從下拉列表中選擇某個值時,我的意思是捕獲該事件+向外部php頁面發出ajax請求。在這個PHP頁面上我需要運行一個mysql查詢。謝謝。Mootools ajax請求

<form name ="f1" action=""> 
    <select id="myr" NAME ="s1" onChange = "GetSelectedItem()"> 
      <OPTION VALUE = "meshed" selected >-- Please Select --</OPTION> 
      <OPTION VALUE = "girls">Male seeking Female</OPTION> 
      <OPTION VALUE = "mens">Female seeking Male</OPTION> 
      <OPTION VALUE = "mens">Male seeking Male</OPTION> 
      <OPTION VALUE = "girls">Female seeking Female</OPTION> 
    </select> 
</form> 

PHP

$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = ''; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('Error connecting to mysql');  
$dbname = 'ratings'; 
mysql_select_db($dbname) or die('Error connecting to database'); 
$sql = "TRUNCATE TABLE rabid_ratings"; 
$re = mysql_query($sql) or die(mysql_error()); 
echo "done"; 

mootools的

<script type="text/javascript"> 
     window.addEvent('domready',function(){ 
      var myRequest = new Request({ 
       url: 'truncate.php', 
       method: 'post', 
       onRequest: function(){ 
       }, 
       onSuccess: function(responseText){ 
        alert("done!"+ responseText); 
       }, 
       onFailure: function(){ 
        alert("failed"); 
       } 
      }); 

      $('myr').addEvent('change', function(event){ 
       event.stop(); 
       myRequest.send(); 
      }); 
     }); 
</script> 

回答

2

添加的改變,甚至你的選擇下拉。讓我們將它命名爲「mydropdown」:

$('mydropdown').addEvent('change', function(){ 
    //do your request (AJax) here 
}); 

這裏是Mootools的演示。您也可以使用Request.HTML或Request.JSON取決於您要返回的內容。

Simple Request W/ Mootools

更新:例如基於關閉您目前所

首先,讓我們看看你的AJAX是設置正確使用以下簡單的Ajax代碼。一旦你得到這個工作,那麼我們可以探索PHP方面。所以,請嘗試以下代碼:

HTML:

<select id="myr" NAME ="s1"> 
    <OPTION VALUE = "meshed" selected >-- Please Select --</OPTION> 
    <OPTION VALUE = "girls">Male seeking Female</OPTION> 
    <OPTION VALUE = "mens">Female seeking Male</OPTION> 
    <OPTION VALUE = "mens">Male seeking Male</OPTION> 
    <OPTION VALUE = "girls">Female seeking Female</OPTION> 
</select> 

通用截斷的PHP回聲無論職位VAR我們發送:

<?php 
    echo $_POST['s1']; 
?> 

Mootools的,當成功應該輸出「完成了! 「:

window.addEvent('domready', function(){ 
    var myRequest = new Request({ 
     url: 'truncate.php', 
     method: 'post', 
     onRequest: function() { 
     }, 
     onSuccess: function(responseText) { 
      alert("done! " + responseText); 
     }, 
     onFailure: function() { 
      alert("failed"); 
     } 
    }); 

    $('myr').addEvent('change', function(event) { 
     event.stop(); 
     var data = this.name + '=' + this.value; //s1=<option value>, which is the post data we are sending to the php script 
     myRequest.send(data); 
    }); 
}); 
+0

我不想返回任何東西,我只需要運行一個查詢,這是外部的PHP文件,這種方法是應該使用? – Doolkin 2011-03-01 16:41:28

+0

@Doolkin你可以做一個普通的帖子,或者如果你不想要任何返回的東西,但請求會做。 – kjy112 2011-03-01 16:42:58

+1

要麼會做。但是,如果您在服務器上運行的查詢所做的不僅僅是獲取某些信息(更新/刪除/創建記錄),還應該使用POST - 否則某些錯誤的Web Spider可能會絆倒您的PHP腳本並刪除所有內容。 – 2011-03-01 16:43:25