表单 - 基于第一选择使用MySQL查询更新选项

时间:2015-07-02 22:16:36

标签: php jquery mysql

我想要的是第二组选项更改为基于date=today and name=selectedname选择名称后可用的任何内容

以下是该表的基础知识:

ID | name  | location  |  Date
1  |John   | place 1   |  03-07-2015
2  |Jane   | place 2   |  03-07-2015
3  |John   | place 2   |  04-07-2015
4  |Jane   | place 2   |  04-07-2015

我只是不确定如何运行SQL语句

SELECT location FROM table WHERE name = "selected name" AND date = CURDATE()基于Select" name"变化

以下是我当前代码的示例:



<form name="test" id="test">
  <div>
    <label for="name">Name:</label>
    <select name="name" id="name" required>
      <option value="" disabled selected>Please Select</option>
      <option value="John">John</option>
      <option value="Jane">Jane</option>
    </select>
  </div>
  <div>
    <label for="location">location:</label>
    <select name="location" id="location" required>
      <option value="" disabled selected>Please Select</option>
      <option value="place 1">place 1</option>
      <option value="place 2">place 2</option>
    </select>
  </div>
  <div>
    <label for="startend">Start or Finish:</label>
    <select name="startend" id="startend" required>
      <option value="" disabled selected>Please Select</option>
      <option value="Start">Start</option>
      <option value="End">Finish</option>
    </select>
  </div>
  <div class="submit">
     <input type="submit" name="submit" value="Submit" class="submit" />
  </div>
</form>
&#13;
&#13;
&#13;

所以一旦约翰选择约翰&#39;从名称选择中,位置选择框将仅包含&#39;地点1&#39;如果今天的日期是03-07-2015,但如果今天的日期是04-07-2015那么它只会包含&#39;地点2&#39;

2 个答案:

答案 0 :(得分:1)

如果您想今天选择John的位置,您只需根据namedate进行选择:

SELECT location 
FROM table 
WHERE name = "John" 
  AND date = CURDATE()

如果要在选择名称后即时更新第二个选择框,则可能需要使用ajax。关于如何使用ajax调用填充选择框的Here are some good examples,请调用namelocation字段更改的代码:

$("#name, #location").change(function(){
    $.ajax({
        url: "fetchData.php",
        data: $('form').serialize(),
        dataType: "json",
        success: function(data) {
            alert("Next we populate the <select> with the data received...");
        }
    });
});

fetchDate.php文件是您需要创建的内容。这个PHP文件将简单地获取正确的位置(使用上面的SQL示例)并以JSON格式回显它们以供JS使用(使用json_encode()函数将PHP数组转换为JSON)。 / p>

理想情况下,您还希望使用专用的names表,并在此处引用John的名称ID,否则当用户需要更改其名称或多个用户时,您会遇到问题具有相同的名称。

答案 1 :(得分:0)

试试这个

SELECT location 
FROM table 
WHERE name = "John" 
  AND date = "03-07-2015"