Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Mysql 如何基于下拉框选择自动生成文本字段_Mysql_Forms - Fatal编程技术网

Mysql 如何基于下拉框选择自动生成文本字段

Mysql 如何基于下拉框选择自动生成文本字段,mysql,forms,Mysql,Forms,我有一个小表单字段,它有as下拉列表这个列表是通过从mysql表中提取数据生成的 mysql数据库的设置如下: 表产品: Column: Product Column: Product ID 表格联系人: Column: Product ID Column: Contact Name Column: Contact name #2 Column: Contact Name #3 Column: Contact name #4 根据用户在下拉列表中选择的内容,我想再

我有一个小表单字段,它有as
下拉列表
这个列表是通过从mysql表中提取数据生成的

mysql数据库的设置如下:

表产品:

  Column: Product
  Column: Product ID
表格联系人:

  Column: Product ID
  Column: Contact Name
  Column: Contact name #2
  Column: Contact Name #3
  Column: Contact name #4
根据用户在下拉列表中选择的内容,我想再次查询数据库以填充4个新文本框:

Name1
Name2
Name3
Name4
有没有一个快速简单的方法来做到这一点

表单的意图还将捕获一些其他数据并将其提交到一个单独的数据库中,这将引导我如何连接两个数据库


谢谢。

有很多方法可以做到这一点。这里有一个:

  • 准备页面时,查询所有
    联系人
    行列,并将它们放入页面上的JavaScript数组中。输出可能是这样的(有很多正确的方法来实现):

  • 确保已定义文本框。对于这个例子,我将通过
    txtName4
    调用它们
    txtName1

    <input type=text name="txtName1">
    ...
    <input type=text name="txtName1">
    

  • 附录:OP要求了解有关该方法的更多详细信息。这需要一些PHP代码,我并不擅长这些代码,但我知道的足够多,我将首先给出关于使用
    mysql
    PHP函数的强制性警告。这是

    PHP
    mysql
    函数已被弃用。请改用或。

    现在回到答案上来。如前所述,我的PHP不是很好,但基本上您希望在填充下拉列表时格式化步骤1中脚本的
    {prodID:…}
    行;这样你只需要扫描一次结果。它应该是这样的(散布在注释中提供的代码中):


    我应该注意,在下拉列表中选择的产品将使用Prodcut ID在第二个数据库中获取联系人。感谢Ed,因为我对所有这些都有点陌生,如果您能提供更多细节,那就太好了。下面是我用来创建下拉列表的代码:我在答案中添加了一个示例。我的PHP非常弱(我大约95%的时间使用.NET),因此可能会出现错误,但它应该显示一般的方法。祝你好运
    
    <select name="ddlProductID" onchange="processProductChange(this);">
    
    <input type=text name="txtName1">
    ...
    <input type=text name="txtName1">
    
    function processProductChange(prodDropdown) {
      for (indx = 0; indx < contactInfo.length; ++indx) {
        if (contactInfo[indx].prodID == prodDropdown.value {
           // The product ID has been located in the array. Put its names
           // in the txtName1 through txtName4 textboxes.
           document.forms[0].txtName1.value = contactInfo[indx].name1;
           document.forms[0].txtName2.value = contactInfo[indx].name2;
           document.forms[0].txtName3.value = contactInfo[indx].name3;
           document.forms[0].txtName4.value = contactInfo[indx].name4;
           // all done, can get out
           break;
        }
      }
    }
    
    <?php
    $jsArray = '';
    while ($row = mysql_fetch_array($productlist)) {
       $rowmod = strtr($row['ProductID']," ","_"); // change the spaces to underscore to work in URL line
       if (jsArray) {
         // comma between elements
         jsArray .= ",";
       }
       jsArray .= "\n{prodID: {$row['ProductID']}, ";
       jsArray .= "name1: \"{$row['Name1']}\", ";
       jsArray .= "name2: \"{$row['Name2']}\", ";
       jsArray .= "name3: \"{$row['Name3']}\", ";
       jsArray .= "name4: \"{$row['Name4']}\"}";
       echo "<option value='$rowmod'>$row[ProductElement]</option>";
    }
    ?>
    
    <? php
    echo <<< endJS
     <script language="JavaScript">
      var contactInfo = new Array($jsArray);
    
      NOTE: PASTE THE FUNCTION FROM STEP 4 HERE
    
     </script>
    endJS;
    ?>