![](/img/trans.png)
[英]Need to access data entered into a form using php and then send it to javascript all on the same page and without reloading?
[英]how to send form values to php using AJAX without reloading page?
我有這個AJAX函數,無需重新加載頁面即可啟動服務器中的PHP函數並發送回生成的信息,但是我還需要向該PHP腳本發送表單輸入值,我該怎么做?
AJAX:
function sorting()
{
var ajax = getRequest();
ajax.onreadystatechange = function()
{
if(ajax.readyState == 4)
{
document.getElementById('main').innerHTML = ajax.responseText;
}
}
document.getElementById('main').innerHTML = "<br/><img src=img/ajax-loader.gif><br/><br/>";
ajax.open("POST", "sorting.php", true);
ajax.send(null);
}
截斷的HTML形式:
<form method="post" action="" name="dateform" id="dateform">
<select name="n_metai" id="n_metai" ><option value="1">1</option>...
</select>
<select name="n_menuo" id="n_menuo" ><option value="2">2</option>...
</select>
<input type="text" name="skaitliukas" id="skaitliukas" size="3" value="1" title="Mažiausias skambučių pasikartojimas">
<input type="checkbox" name="nuliniai" id="nuliniai" value="1" title="Rodyti tik su nulinėmis trukmėmis">
<button name="submit_button" onclick='sorting(); return false;'> Pateikti</button>
</form>
您可以使用jQuery。
$.ajax({
type: "post", //methos
url: "yourpage.php", //where to post
data: { //parameters
n_metai: $('select[name="n_metai"] option:selected').val(),
skaitliukas: $('#skaitliukas').val()
//etc...
}
}).done(function(msg) {
alert( "Done: " + msg ); //display message box with replay
});
問題是這一行:
ajax.send(null);
如果要發送GET
請求,則不傳遞任何內容(或將null傳遞給send
調用),但是您是POST
數據,因此您必須將數據傳遞通過。
一個基本的方法是這樣的:
var frm = document.getElementById('dateform'),
data = [];//empty array
for (var i=0;i<frm.elements.length;i++)
{
data.push(frm.elements[i].name + '=' + frm.elements[i].value);
}
ajax.send(data.join('&'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.