javascript - 选择值更改无法识别并传递给 ajax

标签 javascript php jquery ajax

我的代码是这样设置的:

首先选择:

 <select id="select_order">
     <option value="0">Pick One</option>
     <option value="1">Ascending</option>
     <option value="2">Descending</option>
  </select>

在我的 javascript 中:

var sortv= "database_percent";
var sorto= "asc";
$("#select_order").change(function(){
if (("#select_order").val == 1) {
sortv = "database_percent";
sorto = "asc";
}
else if (("#select_order").val == 2 ){
sortv = "database_percent";
sorto = "desc";
}
else {
alert("Pick something");
}
});

$.ajax({
url: 'all_get_2.php?category=ethnicity',
type: 'GET',
dataType: 'JSON',
data: {sortvalue: sortv ,sortorder:sorto},
})

我希望做的是获取从下拉列表中选择的值,然后将这些新变量(用于 sortv 和 sorto)传递给 ajax。 AJAX 从我的 PHP 文件中获取 JSON,该文件用于绘制 Flot 图表。

我将 sortv 和 sorto 的变量设置在 if...else 代码之上,以便 AJAX 有一些变量可以首先加载图表(因此它不会抛出错误)。但是,当我选择与选择不同的内容时,我会收到与我的 ELSE 条件相对应的警报。我不知道为什么。

假设我(即您)可以解决这个问题,这是否是在 AJAX 中传递新数据变量的正确方法?如果该代码是我的 .done 语句(未显示),我真的应该期望我的图表在这些变量发生变化时重绘吗?

如有任何想法,我们将不胜感激。

最佳答案

使用 .val() 而不是 .val 来接收值。 val() 是一个可以获取或设置字段值的函数。

您还应该在事件处理函数中使用 $(this) ,因为在您的代码中,事件由您的选择字段调用,因此您不需要通过 id 重新选择它:

$("#select_order").change(function(){
    var call = true;
    switch(parseInt($(this).val())) {
        case 1:
            sortv = "database_percent";
            sorto = "asc";
        break;
        case 2:
            sortv = "database_percent";
            sorto = "desc";
        break;
        default:
            call = false;
            alert("Pick something");
        break;
    }

    if(call) {
        $.ajax({
            url: 'all_get_2.php?category=ethnicity',
            type: 'GET',
            dataType: 'JSON',
            data: {sortvalue: sortv ,sortorder:sorto},
            success: function(data) {
                // your response handler here
            }
        });
    }
});

关于javascript - 选择值更改无法识别并传递给 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865670/

相关文章:

php - 禁止跨域飞行前选项

php - 绕过 W3 Total Cache 创建的页面缓存

javascript - 简化 .on() 方法中同一父元素的多个子元素的选择器

javascript - 在将生成的内容应用于 DOM 之前,将 Javascript 类应用于生成的内容

javascript - jQuery 公开插件函数

javascript - 在 C++ 和 QML 之间共享 (Q)WebChannel

javascript - Web Audio API - 克隆audioBuffer

javascript - 将 CKEDITOR 值发布到 Asp.net Core 中的操作

php - httpd.conf 文件在哪里?

javascript - 如何将文本从一个多重输入复制到另一个