我正在尝试将我的主页编码得更加结构化。我必须大量处理 mysql 数据库查询,并且我想为每个表创建一个自己的 .php 文件,其中包含我想通过 Ajax 请求调用的所有必要函数。
因此我通过 stackoverflow 答案得到了以下片段:
$.ajax({ url: '/my/site',
data: {action: 'test'},
type: 'post',
success: function(output) {
alert(output);
}
});
在服务器端,应读取action
POST 参数,并且相应的值应指向要调用的方法,例如:
if(isset($_POST['action']) && !empty($_POST['action'])) {
$action = $_POST['action'];
switch($action) {
case 'test' : test();break;
case 'blah' : blah();break;
// ...etc...
}
}
我的问题:
我也想通过数据属性分配表单数据,但我不知道如何做到这一点。我尝试了以下方法(这只是一个猜测,但没有成功):
var data = $(this).serialize();
$.ajax({ url: '/my/site',
data: {action: 'test', data},
type: 'post',
success: function(output) {
alert(output);
}
});
最佳答案
serialize()
将以字符串的形式从表单返回数据。您只需将剩余的查询附加到字符串的其余部分即可。
示例:
<form id="form">
<input name="form_name_1" value="form_value_1">
<input name="form_name_2" value="form_value_2">
</form>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
var data = $('#form').serialize();
data += '&action=test';
$.ajax({
url: '/my/site',
data:data,
type:'post',
success:function(output) {
alert(output);
}
});
});
</script>
关于javascript - 通过Ajax请求调用php函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159952/