以下是我的HTML示例:
<form class="form-horizontal" action="#" id="sendstuff">
<select name="some_name">
<option value="somevalue1">test value1</option>
<option value="somevalue2">test value2</option>
<option value="somevalue3">test value3</option>
</select>
<button id="sb_btn"> Submit </button>
</form>
这是AJAX代码:
$('#sb_btn').on('click', function() {
$.ajax({
type: 'post',
url: 'some_url',
data: $('#sendstuff').serialize()
})
.done(function(data) {
data = jQuery.parseJSON(data);
alert(data.some_name);
});
});
这是被调用的PHP脚本:
$data['some_name'] = $this->input->post('some_name')//i'm using codeigniter;
echo json_encode($data);
然而,我得到了选择输入的空值。
修改 任何帮助都非常感谢大家。我还没弄清楚出了什么问题。
修改 不确定这篇文章中是否有任何codeigniter专家,但我解决了它。这是因为出于某种原因,codeigniter&#39; $ this-&gt; input-&gt; post(&#39; somename&#39;)&#39;方法没有正常工作。一旦所有codeigniter输入命令到&#39; $ _ POST [&#39; somename&#39;]&#39;,它就解决了这个问题。这是修改后的(WORKING)PHP脚本代码:
$data['some_name'] = $_POST['some_name'];
echo json_encode($data);
答案 0 :(得分:0)
主文件
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<form class="form-horizontal" action="#" id="sendstuff">
<select name="some_name">
<option value="somevalue1">test value1</option>
<option value="somevalue2">test value2</option>
<option value="somevalue3">test value3</option>
</select>
<button id="sb_btn"> Submit </button>
</form>
<script type="text/javascript">
$('#sb_btn').on('click', function() {
$.ajax({
type: 'post',
url: 'index.php',
data: $('#sendstuff').serialize()
})
.done(function(data) {
data = jQuery.parseJSON(data);
alert(data.some_name);
});
return false;
});
</script>
</body>
</html>
Ajax FIle
$ data [&#39; some_name&#39;] = $ _POST [&#39; some_name&#39;];
echo json_encode($ data);