从jQuery下拉列表中访问变量

时间:2015-03-21 05:32:46

标签: javascript php jquery mysql drop-down-menu

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

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

这只是我正在使用的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>

以下是我试图访问搜索变量的代码(此代码回显错误(其他)):我在第二个选择中使用了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";
        }
  }

2 个答案:

答案 0 :(得分:0)

你可以使用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');
        }
    });

答案 1 :(得分:0)

我必须将所有选择的内部表单标记放在一起,使用不同的页面进行搜索,并将该函数添加到搜索页面的底部,而不是从其他页面访问它。

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