【问题标题】:Post a selected option via ajax通过 ajax 发布选定的选项
【发布时间】:2015-07-04 20:38:50
【问题描述】:

假设我有一个 form 和一个 select,如何通过 ajax 调用将输入的选定值发送到我的服务器?

$.ajax({
    type: "POST",
    url: "test2.php"
}).done(function(data) {

});

【问题讨论】:

  • 欢迎来到 StackOverflow!我稍微编辑了您的问题,将问题放在开头并删除了一些(对于问题)不必要的代码。如果您对我的编辑不满意,请随时撤消!

标签: php arrays ajax select


【解决方案1】:

由于您已经在使用 jQuery,一个简单的解决方案是使用它的serialize 函数。

$.ajax({
    type: "POST",
    url: "test2.php",
    data: $('select#meal').serialize()
}).done(function(data) {

});

这个解决方案的好处是您不必担心编码或允许多选的选择。

请注意,我假设一些 HTML 是这样的:

<select id="meal" name="meal">
    <option>Option 1</option>
    ...
</select>

然后,在您的 PHP 脚本中,您可以简单地使用输入名称(在本例中为“meal”)作为 $_POST 数组中的键来访问该值:

$meal = $_POST['meal'];

【讨论】:

    【解决方案2】:

    您必须解析要发送到 php 文件的数据。

    它应该看起来像这样:

    type:"POST",
    data:"mealid="mealVariableHere
    url:"test2.php"
    

    然后您在 $_POST 变量中的 php 脚本中访问 mealid。

    【讨论】:

    • 我认为这不适用于我的情况,因为我的数据是数组。如果我能以某种方式命名:var sel = document.getElementById('mealid'); name=meal 以便像这样从 php 中获取它 $_POST['meal'];
    • 但是如果你不添加数据字段,那么你就没有发布任何数据。如果您希望 php 脚本接收您的 mealid,那么您必须通过在 ajax 请求的 data 参数中定义它来将其发布到脚本,就像我展示的那样 (data:"name1=value1&name2=value2")。而且你说你的数据是一个数组,你说的是什么数据?
    • 在 test2.php 我有一个 sqli 查询,它从数据库中获取数据并将其存储在一个数组中。数组是这样的:$name={早餐,晚餐,午餐,无}然后那里是这些餐点的选择选项,例如,如果有人选择午餐,我想要这样的东西 $meal=$_POST[mealid] echo $meal // 输出午餐
    • 如果我理解正确,那么您必须添加一个事件处理程序来检测用户是否在您的选择元素中选择了一个选项。看看这个sn-p:pastie.org/10114986
    • thnx 很多!我终于在今天清醒地工作了......你帮了我很多!
    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    相关资源
    最近更新 更多