我有poll.php標準形式:PHP形式的Ajax類型
<form method="POST" action="createpoll.php">
..blah...
</form>
反正是有處理表單,而不會導致用戶createpoll.php,像調用createpoll.php上提交?
我有poll.php標準形式:PHP形式的Ajax類型
<form method="POST" action="createpoll.php">
..blah...
</form>
反正是有處理表單,而不會導致用戶createpoll.php,像調用createpoll.php上提交?
該技術被稱爲AJAX。在JAvaScript庫的幫助下,使用它變得非常簡單。您可以使用JQuery或Prototype。搜索AJAX提交。這個主題有很多答案 - 即stackoverflow questions。
對於exapmle,使用JQuery方法ajax()它看起來像這樣(的JavaScript):
$.ajax({
type: "GET", // method - Get or Post
url: "cart.php", // Url to send data
data: { addproduct: productIDVal, isAjax: 'true'}, // Parameters
success: function(theResponse) {
// code to operate with response, if the request was succesful.
// It can be string or array.
}
});
這是一個偉大的教程,應該可以幫助您開始: http://onlamp.com/pub/a/onlamp/2005/05/19/xmlhttprequest.html
你將需要捕捉表單提交使用JavaScript,使用XMLHttpRequest(XHR)提交數據,並解析響應。
的http://js.isite.net.au/snippets/form2obj
禮貌您也可以在同一個站點的obj2query
功能。
<form action="submit.here" method="POST" onsubmit="submit_via_xhr(this.method,
this.action, obj2query(form2obj(this)), successFunction); return false">
function form2obj(theForm) {
var rv = {};
if (typeof(theForm) == 'string')
theForm = document.getElementById(theForm);
if (theForm) {
for (var i = 0; i < theForm.elements.length; i++) {
var el = theForm.elements[i];
if (el.name) {
var pushValue = undefined;
if (
(el.tagName.toUpperCase() == 'INPUT'
&& el.type.match(/^text|hidden|password$/i))
|| el.tagName.toUpperCase() == 'TEXTAREA'
|| (el.type.match(/^CHECKBOX|RADIO$/i) && el.checked)
){
pushValue = el.value.length > 0 ? el.value : undefined;
}
else if (el.tagName.toUpperCase() == 'SELECT') {
if(el.multiple) {
var pushValue = [];
for(var j = 0; j < el.options.length; j++)
if(el.options[j].selected)
pushValue.push(el.options[j].value);
if(pushValue.length == 0) pushValue = undefined;
} else {
pushValue = el.options[el.selectedIndex].value;
}
}
if(pushValue != undefined){
if(rv.hasOwnProperty(el.name))
if(rv[el.name] instanceof Array) {
rv[el.name] = rv[el.name].concat(pushValue);
}
else {
rv[el.name] = [].concat(rv[el.name], pushValue);
}
else {
rv[el.name] = el.value;
}
}
}
}
}
return rv;
}
在你的形式使用Ajax一個偉大的,非常簡單的方法可以在這裏找到:http://jquery.malsup.com/form/
我實際使用這個插件在一些項目上工作得很好。 – 2010-01-02 01:27:47