无法使用AJAX和Codeigniter从表中获取数据

时间:2019-02-16 05:36:24

标签: javascript php jquery ajax codeigniter

我正在创建HRM + CRM(人力资源管理和客户关系管理)。现在我陷入了错误。我想为每个客户生成发票,但无法解决此问题。请帮助我,谢谢你。

视图-控制器(管理员/ gstInvoice)

<div class="row">
                <form id="myform" method="POST" action="">
                    <div class="col-lg-6">
                        <select id="select" class="form-control">
                            <option value="No Data">-- Select Client --</option>
                            <?php foreach ($client as $clientx): ?>
                                <option id="<?= $clientx->cid; ?>" name="<?= $clientx->client_name; ?>"><?= $clientx->client_name; ?></option>
                            <?php endforeach; ?>
                        </select>
                    </div>
                    <div class="col-lg-6">
                        <input type="button" class="submit btn btn-success" id="submit" name="Submit" Value="Submit"/>
                    </div>
                </form>
            </div>
            <div id="result"></div>
            <script>
                $(document).ready(function(){
                $('#submit').click(function(event){
                    event.preventDefault();
                    $.ajax({
                        url : "Invoice/invoiceData",
                        method : 'POST',
                        datatype:'html',
                        success:function(Result){
                            $('#result').html(Result)
                        }
                    })
                })
            })
            </script>

现在,当我选择一个客户并按Submit加载时,我想要的是所有旧发票,并显示一个用于创建新发票的按钮。

我已使用php代码创建每位员工的薪水单, 而且,现在我想获取每个发票表的数据而无需刷新页面

我希望您可以通过下面的图片了解。

我想运行Ajax脚本以从数据库中获取数据并显示在同一页面中,而无需重新加载页面。

每个员工的我的薪水表

enter image description here

点击任何员工后-所有薪水单

enter image description here

请帮助我。

2 个答案:

答案 0 :(得分:1)

您没有通过ajax请求发送表单数据。使用$('#myform').serialize()发送数据

您也没有将<select>标签的名称属性赋予

使用<select id="select" class="form-control" name="client">

这样做

$(document).ready(function(){
   $('#submit').click(function(event){
       event.preventDefault();
       $.ajax({
          url : "<?= base_url('Invoice/invoiceData') ?>",
          method : 'POST',
          data: $('#myform').serialize(),
          dataType:'html',
          success:function(Result){
              $('#result').html(Result)
           }
       });
     });
   });

控制器

然后在控制器函数中获取这样的表单数据

$client = $this-input->post('client');

答案 1 :(得分:0)

<div class="row">
    <form id="myform" method="POST" action="">
        <div class="col-lg-6">
            <select id="select" name="client" class="form-control">
                <option value="No Data">-- Select Client --</option>
                <?php foreach ($client as $clientx): ?>
                    <option value="<?= $clientx->cid; ?>" id="<?= $clientx->cid; ?>" name="<?= $clientx->client_name; ?>"><?= $clientx->client_name; ?></option>
                <?php endforeach; ?>
            </select>
        </div>
        <div class="col-lg-6">
            <input type="button" class="submit btn btn-success" id="submit" name="Submit" Value="Submit"/>
        </div>
    </form>
</div>
<div id="result"></div>
<script>
    $(document).ready(function(){
    $('#submit').click(function(event){
        event.preventDefault();
        $.ajax({
            url : "<?= base_url('Invoice/invoiceData') ?>",
            data: $('#myform').serialize(),
            method : 'POST',
            dataType:'html',
            success:function(Result){
                $('#result').html(Result)
            }
        })
    })
})
</script>

<!-- Controller -->
<?php
public function invoiceData() { 
    $client = $this->input->post('client'); 
    $this->view->load('Admin/sample',$client, TRUE); 
}

编辑了输入表单和控制器,请检查。