Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在加载HTML页面之前执行Javascript填充下拉列表_Javascript - Fatal编程技术网

在加载HTML页面之前执行Javascript填充下拉列表

在加载HTML页面之前执行Javascript填充下拉列表,javascript,Javascript,我在HTML表单中有两个下拉列表。第一个下拉列表需要填充数据库中存在的用户名列表 其次,根据在第一个下拉列表中所做的选择,我需要运行另一个JS脚本对DB进行另一次调用,以检索该用户名的相关地址列表 你能告诉我实现这个目标的最好方法是什么吗? 1) 如何在加载HTML表单之前运行JSscript以返回该列表? 2) 我应该在一个Db调用中同时获取用户名和相关地址,还是先获取用户名,然后在第一个下拉列表中使用onChange事件来执行第二个调用 任何代码都将不胜感激 谢谢如果您在同一个表中有所有信息

我在HTML表单中有两个下拉列表。第一个下拉列表需要填充数据库中存在的用户名列表

其次,根据在第一个下拉列表中所做的选择,我需要运行另一个JS脚本对DB进行另一次调用,以检索该用户名的相关地址列表

你能告诉我实现这个目标的最好方法是什么吗? 1) 如何在加载HTML表单之前运行JSscript以返回该列表? 2) 我应该在一个Db调用中同时获取用户名和相关地址,还是先获取用户名,然后在第一个下拉列表中使用onChange事件来执行第二个调用

任何代码都将不胜感激


谢谢

如果您在同一个表中有所有信息,那么为什么不通过查询数据库一次获得所有数据,然后按照您想要的方式对元素中的数据进行排序和放置呢。 另一种方法需要查询数据库2次

在这里,您可以创建HTML到服务器调用,也可以在本地生成HTML。
here you can create your HTML to server call OR you can make HTML locally.
i have created options for selectbox at server and innerhtml to locally.

<select id="selectbox1" onchange="getData(this)"></select>
<select id="selectbox1"></select>

$(document).ready(function() {

$.ajax({
  url: 'http://localhost/getUsername.php',
  success: function(data) {
    $('#selectbox1').html(data);
    alert('Load was performed.');
  }
});

});

function getData(selData) {

$.ajax({
  url: 'http://localhost/getSecoundCall.php?id='+selData,
  success: function(data) {
    $('#selectbox2').html(data);
    alert('Load was performed.');
  }
});

}
我已经为服务器上的selectbox和本地的innerhtml创建了选项。 $(文档).ready(函数(){ $.ajax({ 网址:'http://localhost/getUsername.php', 成功:功能(数据){ $('#selectbox1').html(数据); 警报(“已执行加载”); } }); }); 函数getData(selData){ $.ajax({ 网址:'http://localhost/getSecoundCall.php?id="selData,, 成功:功能(数据){ $('#selectbox2').html(数据); 警报(“已执行加载”); } }); }
我认为查询数据库一次是有意义的,但是根据第一个下拉列表中的选择,如何填充另一个下拉列表。我现在可以在一个缓冲字符串中获取所有用户名,其中每个新用户名以逗号分隔。对于下拉列表,这是value属性,您可以检查选择了哪个选项,然后使用一些if语句,您可以确定显示数据的下拉菜单位于两个不同的表中:1)Users table for username,UserID(处于活动状态)2)地址表包含UserID和AddressID)因此,用户名显示在第一个dropdpwn列表中,并且根据所选的用户名,关联的UserID将用于查询地址表以获取该UserID的AddressID。然后,您肯定要查询两次!!取决于所选下拉菜单的值。因此,在选择时,用必填字段填充另一个下拉列表