【问题标题】:ajax return data using bootstrap modal can't get parameter inside modal使用引导模式的ajax返回数据无法在模式内获取参数
【发布时间】:2015-12-29 04:49:23
【问题描述】:

我想使用PHP Codeigniter提交一个来自ajax返回数据的数据参数,但是当我提交表单的时候,却拿不到这个参数。

HTML:

 <a href="#myModalBiaya" class="trash" role="button" data-toggle="modal">
                <button class="btn btn-success btn-sm" name="pdetailbiaya" value="Detail Biaya" >Detail Biaya</button>
               </a>

JS:

$('#myModalBiaya').on('shown.bs.modal', function(e) {
           po_id = $('#po_id').val();
           $.ajax({
        type: 'post',
        url: '<?php echo base_url();?>admin/po_trans_receive_po/getBiaya',
        data:'po_id='+po_id,
                  success: function(data){
                      $("#myModalBiaya .tdata").html(data);
        }
      });
  });

模态:

...
<div class="modal-body">
<div class="panel panel-default" >
                   <div class="panel-heading">
                     <div class="form-horizontal tdata" >
                    <div class="form-group" >
<label class='col-md-3 control-label' for='menu_name'>Biaya PPN </label>  
                         <div class='col-md-8'> 
                           <input type="text" name="po_biaya_ppn" id="po_biaya_ppn" readonly onkeyup="getTotalBiaya()"class="form-control text-right" value="0">
                         </div>
                        </div>
...

PHP:

 function getBiaya()
 {
     $po_id = $this->input->post('po_id');
     $resultPO = $this->md_po_trans_po->getID($po_id);

if ($resultPO) {
             $resultotal = $resultPO->po_biaya_ppn+$resultPO->po_ongkos_angkut+$resultPO->po_biaya_asuransi+$resultPO->po_biaya_materai;

  echo '      <div class="form-group" >                                                                                                                                                      ';
    echo '              <label class="col-md-3 control-label">Biaya PPN </label>                                                                                                                 ';
    echo '               <div class="col-md-8">                                                                                                                                                  ';
    echo '                 <input type="text" name="po_biaya_ppn" id="po_biaya_ppn" readonly onkeyup="getTotalBiaya()" class="form-control text-right" value="'.$resultPO->po_biaya_ppn.'">       ';
    echo '               </div>                                                                                                                                                                  ';
    echo '                  </div>     ';
}

除非在我提交此表单时输入参数po_biaya_ppn 为空,否则一切正常。当我print_r($this-&gt;input-&gt;post('po_biaya_ppn'));die(); 时返回空白。

问候, 谢谢你

【问题讨论】:

  • 有什么理由不只返回所需的值而不是所有重复的 HTML?
  • 您在po_id 中发送的值是多少?
  • 如果您在 po_id 中发送的值包含对 url 无效的字符,您需要转换它们,请尝试 data:'po_id='+encodeURIComponent(po_id), 并查看是否可以解决问题
  • po_id 用于使用参数 po_id 进行查询(在 PHP 文件中),是否有更好的方法来实现这一点?
  • 在ajax函数中发送时po_id的实际值是多少?

标签: php jquery ajax twitter-bootstrap codeigniter


【解决方案1】:

替换

 data:'po_id='+po_id,

var form_data = {
    po_id : po_id,
};
data:form_data,

【讨论】:

  • 'po_id='+po_id{ po_id : po_id,} 一样有效
  • @DelightedD0D 我不知道谢谢 :)
  • 不用担心,还请注意,如果发送的值包含对 url 无效的字符,您必须先将它们转换为:data:'po_id='+encodeURIComponent(po_id), 这适用于任一用例
猜你喜欢
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 2015-05-10
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
相关资源
最近更新 更多