Codeigniter下拉菜单将错误的值传递给控制器

时间:2018-09-28 09:00:13

标签: javascript php jquery ajax codeigniter

我有一个包含5个选项的下拉列表,每当我单击模式中的“提交”按钮时,发布到控制器的值都不是我选择的值。

这是我的查看代码

<div class="form-group">
        <div class="col-md-4">
            <select class="form-control" name="procode" id="procode" >

                <option value="AOC">AOC</option>
                <option value="ATN">ATN</option>
                <option value="AOC">APS</option>
                <option value="ATN">ADS</option>
                <option value="AOC">ATW</option>
                <option value="ATN">ATB</option>
            </select>
        </div>
    </div>

这里是我用于向控制器提交数据的ajax代码

var url;
    url = "<?php echo site_url('person/ajax_add_claim')?>";
   $.ajax({
    url : url,
    type: "POST",
    data: $('#formclaim').serialize(),
    dataType: "JSON",
    success: function(data)
    {

        if(data.status) 
        {
            $('#modal_form').modal('hide');
            $('#modal_form').removeData(); 

            reload_table();
        }
        else
        {
            for (var i = 0; i < data.inputerror.length; i++) 
            {
                $('[name="'+data.inputerror[i]+'"]').parent().parent().addClass('has-error'); 
                $('[name="'+data.inputerror[i]+'"]').next().text(data.error_string[i]); 
            }
        }
        $('#btnSave').text('save'); 
        $('#btnSave').attr('disabled',false); 


    },
    error: function (jqXHR, textStatus, errorThrown)
    {
        $('#btnSave').text('save'); 
        $('#btnSave').attr('disabled',false); 

    }
});

3 个答案:

答案 0 :(得分:0)

下拉菜单中的选项包含相似的值,这可能是问题的原因。

 <option value="AOC">AOC</option>
 <option value="ATN">ATN</option>
 <option value="AOC">APS</option>
 <option value="ATN">ADS</option>
 <option value="AOC">ATW</option>
 <option value="ATN">ATB</option>
  • 尝试用其他数据替换这些值。只是为了测试代码是否正常工作。
  • 向我们显示一些控制器代码,以查看您将如何以及如何显示下拉数据。

答案 1 :(得分:0)

这是一个愚蠢的问题。但是你去了:

<div class="form-group">
    <div class="col-md-4">
        <select class="form-control" name="procode" id="procode" >
            <option value="AOC">AOC</option>
            <option value="ATN">ATN</option>
            <option value="APS">APS</option>
            <option value="ADS">ADS</option>
            <option value="ATW">ATW</option>
            <option value="ATB">ATB</option>
        </select>
    </div>
</div>

您注意到区别了吗?

答案 2 :(得分:0)

能否请您共享Java的控制器功能和reload_table功能。我认为您没有从Controller函数返回准确的数据。您应该这样使用。

$drop_downdata = $this->db->function(your db query);

/ *您将这些数据传递给这样的视图,以创建一个名称为dropdown_page.php的页面* /

 $dropdown_view['page'] = $this->load->view('dropdown_page',array('data'=>$drop_downdata),TRUE);
    $this->output->set_content_type('application/json')->set_output(json_encode($dropdown_view));

查看页面dropdown_page.php

<?php foreach($data as $value): ?>
  <li><?=$value->column_name?></li>
<?php endforeach; ?>

您将以这种方式简单获得此下拉列表

`$("#dropdown_id or class").html(response.page)`.

它将根据您的请求显示您的下拉列表