【问题标题】:How to pass data from template to the controller with a select如何使用选择将数据从模板传递到控制器
【发布时间】:2023-03-27 11:48:01
【问题描述】:

如何发送不能将信息从选择发送到控制器。

我想使用选择来过滤类别过滤器进行搜索。选择的数据来自一个BD。 select的数据是id和name。

当您查找某些内容并希望按类别过滤到选择时,一旦在选择中选择类别,就会自动将您重定向到同一视图,但会使用另一个查询加载另一个模型

代码查看:

<?php echo form_open('Welcome/myfunction'); ?>
    <select name="category">
      <option value="">filter</option>
      <?php
      foreach ($cat -> result() as $row){ 
        echo "<option value'".$row->id."'>".$row->name."</option>";
      }
      ?>
    </select>
<?php form_close(); ?>

代码控制器:

public function myFunction(){
     $b = $this->input->post('category');
     echo $b;
}

了解视图和控制器是否有效是一个简单的功能。使用此代码,我在选择中选择了类别,但它什么也不做。

【问题讨论】:

    标签: php html forms templates


    【解决方案1】:

    除了@PawelSzalucki 指出的,您的option 值设置不正确

    看这里

    <?php
       foreach ($cat -> result() as $row){ 
       echo "<option value'".$row->id."'>".$row->name."</option>"; //here
     }
    ?>
    

    应该是

    echo "<option value='".$row->id."'>".$row->name."</option>"; // value=
    

    【讨论】:

      【解决方案2】:

      尝试:

      <select  name="category" onchange='if(this.value != '') { this.form.submit(); }'>
      

      【讨论】:

      • 请在您的回答中添加一些附加信息。虽然一行代码可能会解决特定问题,但对于此页面的其他访问者可能没有太大帮助。
      【解决方案3】:

      您可以在&lt;select&gt;ajax 调用上使用onchange 方法将值传递给“myFunction”

      <?php echo form_open('Welcome/myfunction'); ?>
      <select name="category" id="yourid">
        <option value="0">filter</option>
        <?php
        foreach ($cat -> result() as $row){ 
          echo "<option value='".$row->id."'>".$row->name."</option>";
        }
        ?>
      </select>
      

      代码查看->添加ajax:

      <script>
      $('#yourid').change(function() {
          var categid      = $(this).val();
          var categval    = $(this). text();
          $.ajax({
                  url: 'http://domain/myFunction', //where you need to call ajax
                  type: 'POST',
                  dataType: 'JSON',
                  data: {'category': categval, ‘catid’: categid}, //value of x with param 
                  success: function (data) {
                      console.log(data);
                       //check and print console value   
                  },
                  error: function (e) {
                      //called when there is an error
                      console.log(e.message);
                  }
              });
      
      }
      </script>
      

      代码控制器:

      public function myFunction(){
          $b = $this->input->post('category');
          echo $b;
          //check post print_r(chck posted value here);
      
        }
      

      祝你好运:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-28
        • 2014-12-14
        • 2021-04-20
        • 2015-06-05
        • 1970-01-01
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        相关资源
        最近更新 更多