【问题标题】:Form - Update options with MySQL query based on first selection表单 - 基于第一个选择的 MySQL 查询更新选项
【发布时间】:2015-07-02 22:16:35
【问题描述】:

我想要的是,一旦根据 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>

所以一旦 John 从名称选择中选择“John”,如果今天的日期是 03-07-2015,位置选择框将只包含“Place 1”,但如果今天的日期是 04-07-2015,那么它将只包含“Place 1” 2'

【问题讨论】:

  • 名称重复。还是有可能的。创建一个选择框,其中选项为name,值为ID。然后在提交表单时,您将获得该 ID,然后您可以轻松更新。
  • 如果我理解正确,那么如果选择了名称,则按第二个选定值更新所有行?
  • John 和 John 与 Jane 是同一个人 - ID 仅用于主列,所以基本上如果 John 今天被选中,位置只会显示“Place 1”,但如果他选择了他的名字 tomoro,它将显示“地点 2”
  • 你说的不可能。你怎么能在今天明天追踪它?
  • 基于当前日期变量和页面开头的php

标签: php jquery mysql


【解决方案1】:

如果您想选择今天约翰的位置,您只需要同时基于namedate 进行选择,如下所示:

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

如果您想在选择名称后即时更新第二个选择框,您可能需要使用 ajax。 Here are some good examples 如何使用 ajax 调用填充选择框,调用该代码 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)。

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

【讨论】:

  • 谢谢,SQL 语句不是太大的问题,主要是在名称更改时如何运行它,有没有办法用 JQuery 来做,因为我知道一点,但我什么都不知道关于阿贾克斯
  • 我有一个包含名称和用户名以及电子邮件/密码等的表,我如何将这两个一起引用?
【解决方案2】:

试试这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2021-10-14
    • 2013-04-26
    相关资源
    最近更新 更多