【问题标题】:select with value in table and show onChange选择表中的值并显示 onChange
【发布时间】:2016-09-29 11:32:25
【问题描述】:

我有@ 987654321用value从数据库输入,我将在选择onChange时显示input值。

function showModel(id) {
    if (id === "") {
        $("input[name=color]").val("");
    } else if ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
}
<select onchange='showModel(this.value)' name="model" class="form-control" required="">
  <option value="">- SELECT -</option>
  <?php
    $qry = $db->query("SELECT name_model, color FROM product ");
    while ($fet = $qry->fetch_assoc()) {
        ?>
  <option value="<?php echo $fet['name_model']; ?>"><?php echo $fet['name_model']; ?></option>
  <?php } ?>
</select>
<input type="text" value="" name="color" readonly="">

当我更改select 时,它显示color 表中的数据

【问题讨论】:

  • 能否说明您的目的是什么?
  • 当我选择下拉列表时,它会在&lt;input type="text" value="" name="color" readonly=""&gt;中显示值(从表中选择值)
  • 只是为了确定,您想按价值选择元素吗?

标签: php jquery select onchange


【解决方案1】:

不要将选项值设置为name_model,而是将其设置为颜色。然后它应该按预期工作。

<option value="<?php echo $fet['color']; ?>"><?php echo $fet['name_model']; ?></option>

您的脚本缺少 else 部分。

function showModel(id){
    if (id === "") {
        $("input[name=color]").val("");
    } else {
        $("input[name=color]").val(id);            
    }
}

【讨论】:

    【解决方案2】:

    因为showModel实际上是从onchange获取值,而值可以是空的(''),你只需要这样:

    function showModel(id){
          $("input[name=color]").val(id);
    }
    

    【讨论】:

    • 那个解决方案比我的更迷人 XD
    • 我从不认为狗能写出比我更好的代码。
    • 我不是普通的狗。我是詹姆森
    【解决方案3】:

    没有如果。结果是一样的:

    function showModel(id){
      $("input[name=color]").val(id);
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select onchange='showModel(this.value)' name="model" class="form-control" required="">
        <option value="">- SELECT -</option>
        <option value="123">123</option>
        <option value="321">321</option> 
    </select>
    <input type="text" value="" name="color" readonly="">

    【讨论】:

      【解决方案4】:

      我不知道我是否正确,但它有效! ;-)

      $('select[name=model]').on('change', function() {
        var valModel = $(this).val();
        if (valModel != "- SELECT -") {
          $("input[name=color]").val(valModel);
        } else {
          $("input[name=color]").val("");
        }
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <select name="model" class="form-control" required="">
          <option>- SELECT -</option>
          <option value="Model_1">Model_1</option> 
          <option value="Model_2">Model_2</option> 
          <option value="Model_3">Model_3</option> 
      </select>
      <input type="text" value="" name="color" readonly="">

      【讨论】:

        【解决方案5】:

        使用javascript onchange函数。

        filename.php 是您服务器的 php 文件的名称。在 php 文件中,您所要做的就是通过 $_POST['model'] 获取模型值并执行 DB 操作并在响应中回显颜色名称。

        function showModel(value){
          if (value === "") {
            $("input[name=color]").val("");
          } else{    
            $.ajax({
              url: 'filename.php',
              type: 'GET',
              data: 'model='+value,
              success: function(data) {
                //called when successful
                $("input[name=color]").val(data);
              },
              error: function(e) {
                //called when there is an error
                //console.log(e.message);
              }
            });
          }
        }
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <select onchange='showModel(this.value)' name="model" class="form-control" required="">
          <option value="">- SELECT -</option>
          <option value="1">Blue</option>
          <option value="2">Yellow</option>
          <option value="3">Red</option>
        </select>
        <input type="text" value="" name="color" readonly="">

        另一种使用 jquery .on("change" 事件监听器的方式。

        $("select[name='model']").on("change",function(){
          var selectedvalue = $(this).val();
          if (selectedvalue === "") {
            $("input[name=color]").val("");
          } else{
            $("input[name=color]").val(selectedvalue);
          }
        });
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
        <select name="model" class="form-control" required="">
          <option value="">- SELECT -</option>
          <option value="1">Blue</option>
          <option value="2">Yellow</option>
          <option value="3">Red</option>
        </select>
        <input type="text" value="" name="color" readonly="">

        【讨论】:

        • 抱歉,我的问题令人不安,$("input[name=color]").val(selectedvalue); selectedvalue 数据来自表,而不是来自所选值。如果我选择模型model 123 然后显示颜色“蓝色”。颜色由表中的model 动态显示(在数据库中)
        • 在更改选择框时,您必须进行 ajax 调用。在 ajax 调用中,您必须使用 db 操作从选择框传递所选值,您必须相应地从 db 中获取值并分配文本框中的值..
        • 我是这么认为的,但是请你给我看一下 ajax。 :D
        • 请先检查sn-p。我有一个示例 ajax 代码。 filename.php 是服务器的 php 文件的名称。在 php 文件中,您所要做的就是通过 $_POST['model'] 获取模型值并执行 DB 操作并在响应中回显颜色名称。
        • 感谢 Rahul,只需添加 json 即可返回数据。但是,当我选择 select box 时(例如:选择蓝色)。它改变了所有$("input[name=color]").val(data); 。我只想在clone 中改变$("input[name=color]").val(data); 如何修复它?
        猜你喜欢
        • 1970-01-01
        • 2020-08-18
        • 1970-01-01
        • 2017-05-23
        • 1970-01-01
        • 2012-04-11
        • 2019-10-28
        • 2012-12-01
        • 1970-01-01
        相关资源
        最近更新 更多