【问题标题】:php, mysql and javascriptphp、mysql和javascript
【发布时间】:2015-09-23 17:32:40
【问题描述】:

我想执行动态选择选项,例如,当数据库中第一列的选定下拉选项立即在输入字段中显示第二列的数据库中的第一列数据。

<select name="name" class="form-control" autoFocus="" id="clients" onchange="myFunction()">
    <option value="">Select Client</option>
    <?php 
        $query = mysql_query("SELECT * FROM clients");
        while($selectclients = mysql_fetch_array($query)){  
   ?>
    <option id="<?php echo $selectclients['client_id']; ?>" value="<?php echo $selectclients['data1'] ?>" onchange="show(this.value);"></option>
   <?php } ?>   
</select>

<span name="data2" type="text" id="data2"></span>
<script>
function myFunction() {
    var x = document.getElementById("clients").value;
    document.getElementById("list_currency").innerHTML = "<input name='currency' type=text id='currency' size='12' value="+ x +">";
}
</script>

在脚本中,我已经使用M可以获取数据并在下拉选项中显示并显示(数据库中的第一列),无论选择选项M中的M选择M中的M n select m在输入字段中都可以显示,但我无法从中显示数据数据库第二列

我恳请在这个问题上帮助我

【问题讨论】:

  • 警告 这个扩展在 PHP 5.5.0 中被弃用,在 PHP 7.0.0 中被移除。相反,应该使用 MySQLiPDO_MySQL 扩展名。
  • @EliasNicolas - 什么扩展? ;)
  • MySQL_* 函数。
  • 我感谢您的回复,但它不是 mysqli 问题我共享的脚本正在工作并从数据库中获取数据我的问题是我想显示 2 列中的数据而不是显示选定的数据
  • 您需要将一个 javascript 监听器函数附加到第一个选择菜单,该菜单将 ajax 查询发送到 db - ajax 请求的回调函数然后在第二个下拉菜单中构建内容。跨度>

标签: javascript php html mysql


【解决方案1】:
<?php 
    $query = mysql_query( 'select * from `clients`;' );

    echo "
    <select name='name' class='form-control' autoFocus='' id='clients' onchange='myFunction()'>
        <optgroup label='Select Client'>";
        while( $rs = mysql_fetch_array( $query ) ){  
            echo "<option id='{$rs['client_id']}' value='{$rs['data1']}'>{$rs['data1']}</option>";
        }
    echo "  
        </optgroup>
    </select>";
?>


/* span elements do not have a 'type' attribute */
<span name='data2' id='data2'></span>
/* Your original code did not show the receiving html element, list_currency */
<span name='list_currency' id='list_currency'></span>


<script type='text/javascript'>
    function myFunction() {
        var oSelect = document.getElementById('clients');
        var oCur=document.getElementById('list_currency');
        var value=oSelect.options[ oSelect.options.selectedIndex ].value;

        oCur.innerHTML = "<input name='currency' type='text' id='currency' size='12' value=" + value + ">";
    }
</script>

我不是 100% 确定我理解了这个问题,因为第二列中提到了数据,但代码中没有提到它。也就是说,当您从下拉菜单中选择一个选项时,基于原始的容器元素list_currency 将填充带有选择菜单值的输入字段。如果这不是您的意思,请进一步解释 - 特别是 second column 是什么...

【讨论】:

  • 选择下拉菜单将是客户名称(第一列),显示数据将是货币(第二列)。
  • 选择客户端名称都来自mysql数据库(第一列),显示货币也将是同一个数据表(第二列)
  • 在 RamRaider 发布的代码中也显示了输入字段中选择选项的相同数据,其中 m 寻找的是来自数据库第二列的其他数据应该显示
【解决方案2】:

上面的代码在经过小修改后可以按照我的要求运行良好

<?php 
    $query = mysql_query( 'select * from `clients`;' );

    echo "
    <select name='name' class='form-control' autoFocus='' id='clients' onchange='myFunction()'>
        <optgroup label='Select Client'>";
        while( $rs = mysql_fetch_array( $query ) ){  
            echo "<option id='{$rs['client_id']}' value='{$rs['currency']}'>{$rs['name']}</option>";
        }
    echo "  
        </optgroup>
    </select>";
?>



<span name='list_currency' id='list_currency'></span>


<script type='text/javascript'>
    function myFunction() {
        var oSelect = document.getElementById('clients');
        var oCur=document.getElementById('list_currency');
        var value=oSelect.options[ oSelect.options.selectedIndex ].value;

        oCur.innerHTML = "<input name='currency' type='text' id='currency' size='12' value=" + value + ">";
    }
</script>

非常感谢您发布此代码非常感谢您

【讨论】:

  • 哦,对不起,下面的答案只有在显​​示时才能正常工作,但我想将这两个数据发布到另一个表中
  • 如果我在两个不同的列中发布两个数据,则第一列和第二列中的数据相同
  • 请求您在这个问题上帮助我
  • 虽然根据要求显示正确,但在 mysql 中发布两个数据时应该在 2 个不同的列中发布
猜你喜欢
  • 1970-01-01
  • 2011-03-01
  • 1970-01-01
  • 2014-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多