2012-08-11 50 views
2

我有數據傳遞給同一頁上的jQuery腳本的形式。該形式如下:我可以通過表單數據/變量使用AJAX在jQuery腳本PHP?

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<input type="radio" name="favourites" value="all" checked="checked"> all tracks &nbsp&nbsp<input type="radio" name ="favourites" value="favourites"> favourites only<br><br> 
<input type="submit" name="submit" id="filter" class="submit" value="filter"><br> 
</form> 

的收藏價值,然後通過一個PHP腳本的jQuery內的同一頁,其中動態生成一個MySQL查詢的頭檢索。但是,這是因爲頁面被重新加載。如果可能的話,我想使用AJAX將表單數據/變量傳遞給jQuery腳本,而不用重新加載頁面。我知道,我可以操縱使用AJAX HTML和CSS,但我還可以操縱頭的jQuery腳本?如果是這樣,我該怎麼辦呢?

+1

你不需要要操縱頭部中的腳本,您需要編寫一個用ajax代替發送表單的新腳本。 – adeneo 2012-08-11 20:23:27

+0

@adeneo你的意思是,我需要從頭部重現了整個劇本,增加了對加工形式AJAX?對不起,我對AJAX比較陌生! – Nick 2012-08-11 20:30:14

回答

3

爲簡單起見,給形成獨特的ID,然後只需做一個jQuery的崗位爲此而設計的一個AJAX文件。

例子:

HTML

<form id="postForm" method="POST"> 
    <input type="radio" name="filter" value="1" /> Only favorites 
    <input type="radio" name="filter" value="2" /> Everything 
    <input type="submit" name="postFormSubmit" /> 
</form> 

jQuery的

$('form#postForm').submit(function(e){ 
    e.preventDefault(); //Prevents a page reload 
    var filter = $(this).find("input[@name=filter]:checked").val(); //Gets the value of "filter" 
    $.post("/path/to/ajax.php",{filterType:filter},function(){ 
     // Callback, could make the data output attach to this. 
    }); 
}); 

這就是我ATLEAST開始:)

+1

@Raminson - 只注意到該格式是全亂了。感謝您的清潔! :) – Bonius 2012-08-11 20:48:09

3

看看this。代碼會像這樣。

HTML:

<form id="postForm" method="POST"> 
    <input type="radio" name="filter" value="1" /> Only favorites 
    <input type="radio" name="filter" value="2" /> Everything 
    <input type="submit" name="postFormSubmit" /> 
</form> 

的Javascript:

jQuery("#postForm").submit(function(event){ 
    event.preventDefault(); 
    jQuery.post("/ajax.php", jQuery("#postForm").serialize(), function(){ 
    //done 
    }); 
} 
+0

感謝您的回答。我會看看你鏈接的文章。對於ajax來說相當新鮮,但我有點困惑。在ajax.php中發生了什麼?這是我目前所有代碼所在的主要index.php頁面嗎? – Nick 2012-08-11 21:17:21

+0

你想從網站的其餘部分拆分你的.php文件。將網站依賴的所有代碼放在單個文件中會導致很多問題。無論如何:在ajax.php中,這是你放置SQL查詢的地方(如果你使用的是OOPHP,那麼就是對象實例)。 – Bonius 2012-08-11 22:15:56

相關問題