我需要帮助。为什么我的代码不起作用?从form.serialize
获取数据的正确方法是什么?地雷不工作..也正在将它传递给PHP时正确吗?我的PHP代码看起来很糟糕,看起来不是一个好的oop
HTML
<form action="" name="frm" id="frm" method="post">
<input type="text" name="title_val" value="" id="title_val"/>
<a href="javascript:;" title="" id="save">post topic</a>
</form>
<div id="test">
</div>
的Javascript
$( document ).ready(function() {
$('#save').click(function() {
var form = $('#frm');
$.ajax({
url: 'topic.php',
type:'get',
data: form.serializeArray(),
success: function(response) {
$('#test').html(response);
}
});
});
});
腓
<?php
class test{
public function test2($val){
return $val;
}
}
$test = new test();
echo $test->test2($_POST['title_val']);
?>
输出的
答案 0 :(得分:0)
您告诉您的ajax调用将变量作为GET
变量发送,然后尝试使用$_POST
超全局访问它们。将GET
更改为POST
:
type:'post',
此外,应该注意的是,您将ajax调用绑定到提交按钮上的单击,因此您的表单仍将发布。您应该在表单的提交函数上绑定,并使用preventDefault
来阻止表单发布。
$('#frm').submit(function(e) {
e.preventDefault(); // stop form processing normally
$.ajax({
url: 'topic.php',
type: 'post',
data: $(this).serializeArray(),
success: function(response) {
$('#test').html(response);
}
});
});