如何使用php / javascript将具有一个变量的AJAX数据发布更改为多个变量?

时间:2019-01-28 03:42:58

标签: php ajax codeigniter

以下代码仅使用card_no变量通过AJX发布cardData。通过AJAX向trace_no添加另一个变量data的最简单方法是什么。

感谢您的帮助。 谢谢

<tbody>
<?php
    if(!empty($PBBdata)):
        $i=1;
        foreach($PBBdata as $row){
            echo '<tr>';
            echo '<td>'.$i.'</td>';
            echo '<td>'.$row->trans_date.'</td>';
            echo '<td>'.$row->trans_date.'</td>';
            echo '<td>';
?>
<input type="button" name="view" value="<?php echo $row->card_no; ?>" id="<?php echo $row->card_no; ?>" class="btn btn-primary btn-sm view_data">
<?php
            echo '</td>';
            echo '<td>'.$row->card_type.'</td>';
            echo '<td>'.$row->approval_code.'</td>';
            echo '<td>'.$row->gross_cur.'</td>';
            echo '<td align="right">'.number_format($row->gross_amt,2).'</td>';
            echo '<td align="center">'.$row->trace_no.'</td>';
            echo '</tr>';
            $i++;
     }
     endif;
?>        
</tbody>

......

<script type="text/javascript">
$(document).ready(function(){
 $('.view_data').click(function(){
  var cardData = $(this).attr('id');
        $.ajax({
         url: "<?php echo base_url() ?>Finance/get_matchBYpan",
         method: "POST",
         data: {cardData:cardData},
         success: function(data){
            $('#hms_result').html(data);
            $('#modal_tableHMS').modal('show');
         }
        });
 });
});
</script>

///添加财务/ get_matchBYpan代码

       public function get_matchBYpan()
       {
        $this->load->model('model_finance');

          $cardData = $this->input->post('cardData');
          $last4pan = substr($cardData,12);

          if(isset($last4pan) and !empty($last4pan))
          {
                 $records = $this->model_finance->matched_by_panPBB($last4pan);

                 $i=1;
                 $sumtotal =  0;
                 $output = '';


                 $output .= '

                        <h4 class="text-center"> Credit Card Number: '.$cardData.'</h4><br> 
                        <table class="table table-bordered table-hover">
                        <thead>
                        <tr>
                               <th>No</th>
                               <th>Booking ID</th>
                               <th>PAN No</th>
                               <th>Approval Code</th>
                               <th>Method</th>
                               <th>Source</th>
                               <th>OTA</th>
                               <th>Amount</th>
                               <th>Variance</th>
                        </tr>
                        </thead>
                        <tbody>';
                 if(!empty($records)):
                 foreach($records as $row)
                 {       

                        $output .= '      
                        <tr>
                               <td>'.$i.'</td> 
                               <td>'.$row->booking_id.'</td>
                               <td>'.str_pad($row->pan, 4, '0', STR_PAD_LEFT).'</td>
                               <td>'.$row->approval_code.'</td>
                               <td>'.$row->method.'</td>
                               <td>'.$row->source.'</td>
                               <td>'.$row->ota.'</td>
                               <td align="right">'.number_format($row->total,2).'</td>
                               <td></td>
                        </tr>';
                 $sumtotal = $sumtotal + $row->total;      
                 $i++;
                 }
                 $output .= '
                        <tr>
                               <td></td> 
                               <td></td>
                               <td></td>
                               <td></td>
                               <td></td>
                               <td colspan="2"><b>GRAND TOTAL</b></td>
                               <td align="right">'.number_format($sumtotal,2).'</td>
                               <td></td>
                        </tr>
                        </tbody>
                        </table>';
                 endif;
                 echo $output;

          }
   }

对于model_finance-> matched_by_panPBB($ last4pan)稍后将更改为 model_finance-> matched_by_panPBB($ last4pan,$ traceNo); // trace没有从AJAX获得,我不知道如何将其提供给AJAX

2 个答案:

答案 0 :(得分:1)

一种方法是更改​​:

value="<?php echo $row->card_no; ?>"  

value="<?php echo $row->card_no.'-'.$row->trace_no; ?>"

然后,更改:

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

$cardData = $this->input->post('cardData');
$card_no = substr($cardData, 0,11); // depending on how you want to display you can change it 
$trace_no = substr($cardData,16,18); // you can replace this function with strpos()

并添加:

<h4 class="text-center"> Credit Card Number: '.$card_no.'</h4>
<h4 class="text-center"> Trace Number: '.$trace_no.'</h4>

答案 1 :(得分:0)

您认为

<input type="button" name="view1" value="<?php echo $row->trace_no ; ?>" id="<?php echo $row->trace_no ; ?>" class="btn btn-primary btn-sm view_data"> //如果您不希望显示隐藏它。

使用名称= view1获取值。

var trace_no = document.getElementsByName("view1"); // pass this to AJAX data

$.ajax({
         url: "<?php echo base_url() ?>Finance/get_matchBYpan",
         method: "POST",
         data: {cardData:cardData,
                trace_no:trace_no
       },

在控制器中接收trace_no并将其传递给模型。

================================================ ===== 如果您是第一次尝试显示数据,那么

Windows.onload上的

将静态值传递给trace_no。然后它将在第一次正常工作,并且在第二次$('.view_data').click(function(){会被触发,因此无论您想要什么,都传递数据或更多数据的值。

希望这就是您想要的。