为什么我的SELECT标签的值不是通过AJAX发布请求提交的?

时间:2017-06-06 03:00:58

标签: php jquery ajax forms post

以下是我的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);

1 个答案:

答案 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);