【问题标题】:change input value based on <select> PHP/Mysql根据 <select> PHP/Mysql 更改输入值
【发布时间】:2016-11-16 00:37:09
【问题描述】:

几天来一直在寻找答案,即使我认为这应该很简单,但我似乎无法让它发挥作用。

首先我用一个while循环从我的数据库中填充一个“选择”。

<select class="admin-content-select" name="sale">
    <?php try {
        $stmt = $db->prepare('SELECT saleID, saleKal, saleNr FROM wcms_sale');
        $stmt->execute(array(':saleKal' => $row['saleKal']));
        while($sale = $stmt->fetch()){
            echo '<option value="'.$sale['saleKal'].'">'.$sale['saleKal'].'</option>';
        } 
    }catch(PDOException $e) {
        echo $e->getMessage();
    }
    ?>
</select>

然后我有一个输入字段,我需要根据所选内容填充一个值。 The values are on the same row in the db so my initial thought was that it would be easy to say: "when X row is selected, echo Y" but since it's a while loop it will simply echo a lot of input fields.

有什么变通方法还是我在 while 循环中完全错了?

希望我解释得对,并提前感谢您的任何回答:)

答案:

<select id="saleName" class="admin-content-select" onchange="changeFunc()">

<option value="'.$sale['saleNr'].'">'.$sale['saleKal'].'</option>';

然后按照建议添加一个功能:

function changeFunc(){
    var x = document.getElementById("selectID").value;
    document.getElementById("inputID").value = x;
}

感谢大家的回答!

【问题讨论】:

  • 如何知道值是从wcms_sale中选择的?
  • 点击相应的select值时是否需要显示saleKal值?
  • 我只从该数据库中选择值:“FROM wcms_sale”。或者这不是你的意思?
  • @Arun Sry 我更新了以使其清楚。我需要根据我选择的“saleKal”在输入字段中显示“saleNr”。
  • @christopherlarsen,查看我的更新答案

标签: php mysql loops select while-loop


【解决方案1】:

如果您不想拨打ajax,请使用jquery 执行以下操作

将您的回声更改为

echo '<option value="'.$sale['saleKal'].'" data-value="'.$sale['saleNr'].'">'.$sale['saleKal'].'</option>';

将此 jquery 添加到 js 文件中

$('.admin-content-select').on('change', function(){
   var dataValue = $('option:selected', this).attr('data-value');//getting the value from the attribute
   $('#your_input_id').val(dataValue);//add the value to input box
});

【讨论】:

  • 也感谢您的回答:)
  • @christopherlarsen,很高兴
【解决方案2】:

您必须决定应用程序的哪一部分负责检索匹配值。有三种选择可以实现您想要做的事情:

  1. 将选定的值发送回服务器,让服务器检索相应的值并将其呈现在新页面上。
  2. 将所有可能的值呈现到 JavaScript 数组中,并将 JavaScript sn-p 放入您的应用程序中,从该数组中检索相应的值并将其放入文本字​​段中。
  3. 构建一个 AJAX 应用程序,它将在后台将选定的值发送回服务器,检索该值,然后将其显示给用户,而无需重新加载页面。

在所有三种情况下,您都需要某种方式来触发操作。通过在选择框旁边添加一个按钮或通过 JavaScript 添加一个 onChange 事件。

【讨论】:

    【解决方案3】:

    你可以使用 jQuery

    $('.admin-content-select').change(function () {
            var content = $(this).val();
            if(content == 'A')
            {
                $('#id_of_input').val('A is selected');
            }
            else if(content == 'B')
            {
                $('#id_of_input').val('B is selected');
            }...
        });
    

    【讨论】:

    • 感谢您引导我回答问题!
    猜你喜欢
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    相关资源
    最近更新 更多