从 jQuery 下拉列表中访问变量

Posted

技术标签:

【中文标题】从 jQuery 下拉列表中访问变量【英文标题】:Accessing a variable from inside a jQuery drop down list 【发布时间】:2015-05-24 15:13:49 【问题描述】:

我有一个 jQuery 下拉列表,其中包含两个下拉列表。第一个是汽车列表,第二个显示汽车的型号。这一切都很好。现在我想使用用户选择的选项来搜索数据库(mysql)并在数据库中查找特定元素。这只是给了我代码中的 else ,一旦它给了我一个未定义的变量错误消息。

如何编写代码以便访问变量并显示搜索结果?这是我的代码:

这只是我正在使用的 jQuery 的一个示例 - 我实际上使用的是汽车,但这显示了城市:

<select class="select" id="province" onchange="filterCity();">
  <option value="1">RM</option>
  <option value="2">FI</option>
</select>

 <select class="select" id="city" disabled>
  <option data-province="RM" value="1">ROMA</option>
  <option data-province="RM" value="2">ANGUILLARA SABAZIA</option>
  <option data-province="FI" value="3">FIRENZE</option>
  <option data-province="FI" value="4">PONTASSIEVE</option>
</select>

<span id="option-container" style="visibility: hidden; position:absolute;"></span>

<script>

    function filterCity()
      var province = $("#province").find('option:selected').text(); // stores province
      $("#option-container").children().appendTo("#city"); // moves <option> contained in #option-container back to their <select>
      var toMove = $("#city").children("[data-province!='"+province+"']"); // selects city elements to move out
      toMove.appendTo("#option-container"); // moves city elements in #option-container
      $("#city").removeAttr("disabled"); // enables select
 ;
</script>

这是我试图访问搜索到的变量的代码(此代码回显错误(else)):我在第二个选择中使用了 name="car":

if (isset($_POST['car'])) 
        $_SESSION['car'] = $_POST['car'];
    $car = $_SESSION['car'];

function find_tire()
    if (isset($_POST['car'])) 
        $_SESSION['car'] = $_POST['car'];
    $car = $_SESSION['car'];


    global $db;

    if (isset($car)) 
    $query = $db->prepare("SELECT idtires FROM vehicle WHERE idcarmodel = $car");
 $query->execute();
    $tire = $query->fetchAll();
    var_dump($query);
if (isset($tire)) 
            echo "<ul>";
        foreach ($tire as $name) 
                echo "<li id='tiresearch'>";
                echo "Tire Size is Available: " . $name    ['idtires'];
                echo "</li>";
            echo "</ul>";
     else 

            echo "Wrong";
        
  

【问题讨论】:

你收到$_POST['car'] 是因为你似乎没有在第二个select 中指定name="car" @NarendraSisodia - 是的,我在第二次选择中使用了 name="car" - 我没有发布我的实际汽车代码,因为它太长了。 但是请确保在您的代码中显示它,否则这里的其他人会首先指出该错误 @NarendraSisodia,我把它写在函数上方,这样人们就会知道。你是这个意思吗? 你在$tire 中获得价值吗?为什么你有这样的冗余代码,function find_tire() 和上面的代码有什么区别 【参考方案1】:

您可以为此使用 ajax 将您的变量发送到另一个页面并从那里获得响应。类似这样的东西

var id = $('selector').val();
    var AjaxURL = 'http://example.com';
    var data = id;
    $.ajax(
        type: "POST",
        url: AjaxURL,
        data: data: data,
        success: function(result) 
            window.console.log('Successful');
        
    );

【讨论】:

我不确定我是否完全理解这一点。我只是想访问一个变量。我认为我不需要为此创建一个新页面。【参考方案2】:

我不得不将所有的选择放在表单标签中,使用不同的页面进行搜索,并将功能添加到搜索页面的底部,而不是从不同的页面访问它。

感谢任何发布答案并试图帮助我的人。它可以正常工作(有一些错误),但我很高兴它终于可以正常工作了。

【讨论】:

以上是关于从 jQuery 下拉列表中访问变量的主要内容,如果未能解决你的问题,请参考以下文章

从下拉列表中复制选项列表。 jQuery

Jquery 从下拉列表中获取 SelectedText

jQuery从下拉列表中删除一个选项,给定选项的文本/值

jQuery从选定的下拉列表中获取html id [重复]

从下拉列表中取消选择时,Jquery 从数组中删除值

如何在从数据库填充的 Jquery 下拉列表中显示选中的值