以下代码仅使用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
答案 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(){
会被触发,因此无论您想要什么,都传递数据或更多数据的值。
希望这就是您想要的。