Как изменить запись данных AJAX с одной переменной на несколько переменных с помощью php / javascript? - PullRequest
0 голосов
/ 28 января 2019

Следующий код отправляет только card_no через AJX с использованием переменной cardData.Какой самый простой способ добавить еще одну переменную trace_no к data через AJAX.

Благодарим вас за помощь.Спасибо

<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>

// добавление кодов Finance / 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);// traceNo получить от AJAX, который я не знаю, как передать это AJAX

Ответы [ 2 ]

0 голосов
/ 28 января 2019

По вашему мнению

<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"> // если вы не хотите, чтобы это отображалось, скрыть его.

получить значение, используя name = 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(){, поэтому передайте значение как данных, так и большего, чего бы вы ни хотели.

Надеюсь, это то, что вы ищете.

0 голосов
/ 28 января 2019

Один из способов изменить:

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...