【问题标题】:Codeigniter : on selection of a value from drop down change value of checkboxCodeigniter:从下拉列表中选择一个值更改复选框的值
【发布时间】:2020-08-08 18:17:48
【问题描述】:

我有 3 张桌子说:-

invoice_details、customer_details 和 bill_address。

发票表单有一个dropdown 和一个checkboxCustomer names 列在customer table 的下拉列表中。当我选择customer name 时,复选框值必须具有相应的billId

所以当我标记复选框时,复选框的值必须是已选择的客户名称的billId。我希望我的问题很清楚。

查看页面:-

<div class="row space">
 <label class="control-label">Customer <span class="manda">*</span></label>
 <select class="form-control" name="customerId" id="customerId">
   <option value="0">Choose....</option>
     <?php 
      if ($customer) {

       foreach ($customer as $row) {

        echo "<option value='".$row->customerId."'>".$row->customer_name."</option>";
      }

     } ?>

     </select>
</div> 
<div class="row space">
 <div class="col-sm-6">
  <input type="checkbox" name="checkbox" value="bill">
  <label>Bill To</label>
 </div>
</div>

我怎么能这样做?请帮帮我...

customerId 在所有3 tables 中都很常见。

表格详情:-

bill_address(billId, customerId, street, city, state, country).
customer_details(customerId, customer_name, phone, email,..).
invoice_details(invoiceId, customerId, billId, date, status,..).

【问题讨论】:

  • 你知道codeigniter中的ajax???
  • 你的问题解决了吗,请告诉我?
  • 是的,先生,我知道 ajax。
  • 是的,先生,我找到了解决方案。谢谢@KUMAR。但是我对代码做了一些更改。 foreach($BillTableDta as $bill) { $billData.='&lt;input type="checkbox" name="billcheckbox" value="'.$bill.'"&gt;'; } 使用每个 9 复选框出现我只需要一个出现。它工作正常。
  • 好的,很高兴听到它为您工作。

标签: php html codeigniter


【解决方案1】:

发票表单查看页面:-

<div class="row space">
 <label class="control-label">Customer Name<span class="manda">*</span></label>
 <select class="form-control" name="customerId" id="customerId">
   <option value="0">Choose Customer Name</option>
     <?php 
      if ($customer) {

       foreach ($customer as $row) {

        echo "<option value='".$row->customerId."'>".$row->customer_name."</option>";
         }
       }
      ?>

     </select>
</div> 
<div class="row space">
 <div class="col-sm-6">
  <div id='billData'></div>
 </div>
</div>

Jquery Ajax 代码:- 在关闭&lt;/body&gt; 标签之前在发票表单视图页面中添加此代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script>
$(document).ready(function() {
    $("#customerId").on("change",function(){
    var customerId = $(this).val();
 
    $.ajax({
         url : "<?php echo base_url('controler_Name/get_data_in_bill_checkbox') ?>",
         type: "post",
         data: {"customerId":customerId},
         success : function(data){
            //alert(data);
    $("#billData").html(data);
         }
    });
});
});
</script>

控制器代码:-

public function get_data_in_bill_checkbox(){
    
    $customerId = $this->input->post("customerId");

    $BillTableDta = $this->db->get_where('bill_address',array('customerId'=>$customerId))->row_array();
           
           $billData = "<label>Bill To</label>";
              foreach($BillTableDta as $bill)
              {
                $billData.='<input type="checkbox" name="billcheckbox" value="'.$bill.'">';
              }
               echo $billData;
           }

注意:-更多参考请看https://api.jquery.com/change/

【讨论】:

    【解决方案2】:

    您可以使用以下内容让我知道它是否可以使用三角形。:-)

    <div class="row space">
        <form action="" method="POST">
            <label class="control-label">Customer <span class="manda">*</span></label>
            <select class="form-control" name="customerId" onchange="this.form.submit()" id="customerId">
            <option value="0">Choose....</option>
            <?php 
                if ($customer) {
    
                foreach ($customer as $row) {
    
                echo "<option value='".$row->customerId.'/'.$row->customer_name."'>".$row->customer_name."</option>";
                }
    
                } 
            ?>
            </select>
        <?php
            if(isset($_POST['customerID'])){
            $true=checked;
            $data=explode("/",$_POST['customerID']);
            $id=$data[0];
            $name=$data[1];
            }
            else {
            $true="";
            }
        ?>
    </div> 
    <div class="row space">
        <div class="col-sm-6">
            <input type="checkbox" <?php if(isset($true){ echo $true; } ?> name="checkbox" value="<?php if(isset($id){ echo $id; } ?>"> <!-- you can change this $id to $name based on your need.-->
            <label><?php if(isset($name) { echo $name; } ?></label>
        </div>
    </div>
    </form>
    

    【讨论】:

    • 我遇到了一个错误。未定义的标识。先生@waanofii.tech 下拉和复选框都在一个带有提交按钮的表单中。
    • 编辑了答案错别字错误更改内爆到爆炸。并将结束表单标签移动到底部
    • 遇到 PHP 错误 严重性:通知消息:未定义变量:id 文件名:manger_views/invoice.php 行号:330 我收到此错误。我应该怎么办? @waanofii.tech
    • 现在检查一下,我已经对复选框的最后一段代码及其周围的值进行了一些更改:-)
    • 我得到了上面代码的解决方案。谢谢@waanofii.tech
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    相关资源
    最近更新 更多