У меня есть таблица с некоторыми вычислениями, я могу отправить дважды и обновить после ввода данных, чтобы получить результат для первой строки данных, остальные строки не имеют результата.Теперь я хочу обновить автоматически после ввода данных.это возможно сделать?или я могу обновить все строки сразу?кто-нибудь может помочь?
index.php
<script>
window.onload = function() {
$(".cal_amount").change(function() {
var auto_array = {};
//Step 1- On change use The closest() method to get the all input elements value of selected element row.
form_data = $(this).closest('tr').find('input, select');
//Step 2- On change Use map to store input elements value with name as key in the array.
var myArray = $.map(form_data, function(element) {
auto_array[element.name] = element.value;
//return {name: element.name, value: element.value};
});
console.log(myArray);
var pprice = $(this).closest('tr').find('.pprice');
var price = $(this).closest('tr').find('.price');
var total_cost = $(this).closest('tr').find('.total_cost');
var pprice_total = $(this).closest('tr').find('.pprice_total');
var supplement_rate = $(this).closest('tr').find('.supplement_rate');
pprice_val = Math.round(auto_array['cost'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['vat'] / auto_array['eurbuy']);
price_val = Math.round(auto_array['cost'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['vat'] / auto_array['eurbuy']) * auto_array['no_of_day'] * auto_array['qua'];
total_cost_val = Math.round(auto_array['cost'] * auto_array['qua'] * auto_array['no_of_day'] * auto_array['vat'] * auto_array['currency_rate'] / auto_array['eurbuy']);
pprice_total_val = Math.round(auto_array['cost'] * auto_array['vat'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['qua'] / auto_array['eurbuy']);
supplement_rate_val = Math.round(auto_array['supplement'] * auto_array['profit_rate'] * auto_array['no_of_day'] * auto_array['currency_rate'] / auto_array['eurbuy']);
if(!isNaN(pprice_val) && pprice_val != 'Infinity') {
pprice.val(pprice_val);
}
if(!isNaN(price_val) && price_val != 'Infinity') {
price.val(price_val);
}
if(!isNaN(total_cost_val) && total_cost_val != 'Infinity') {
total_cost.val(total_cost_val);
}
if(!isNaN(pprice_total_val) && pprice_total_val != 'Infinity') {
pprice_total.val(pprice_total_val);
}
if(!isNaN(supplement_rate_val) && supplement_rate_val != 'Infinity') {
supplement_rate.val(supplement_rate_val);
}
form_data = $(this).closest('tr').find('input,select').serialize();
$.ajax({
data: {
action: 'update_price',
form_data: form_data,
},
url: 'updates_ok.php',
type: 'post',
beforeSend: function() {
},
success: function(data) {
if(data == 1){
alert('update sucessful')}
}
});
});
};
</script>
<script>
window.onload = function() {
$(".day_record").change(function() {
var auto_array = {};
//Step 1- On change use The closest() method to get the all input elements value of selected element row.
form_data = $(this).closest('tr').find('input, select');
//Step 2- On change Use map to store input elements value with name as key in the array.
var myArray = $.map(form_data, function(element) {
auto_array[element.name] = element.value;
//return {name: element.name, value: element.value};
});
console.log(myArray);
var pprice = $(this).closest('tr').find('.pprice');
var price = $(this).closest('tr').find('.price');
var total_cost = $(this).closest('tr').find('.total_cost');
var pprice_total = $(this).closest('tr').find('.pprice_total');
var supplement_rate = $(this).closest('tr').find('.supplement_rate');
pprice_val = Math.round(auto_array['cost'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['vat'] / auto_array['eurbuy']);
price_val = Math.round(auto_array['cost'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['vat'] / auto_array['eurbuy']) * auto_array['no_of_day'] * auto_array['qua'];
total_cost_val = Math.round(auto_array['cost'] * auto_array['qua'] * auto_array['no_of_day'] * auto_array['vat'] * auto_array['currency_rate'] / auto_array['eurbuy']);
pprice_total_val = Math.round(auto_array['cost'] * auto_array['vat'] * auto_array['profit_rate'] * auto_array['currency_rate'] * auto_array['qua'] / auto_array['eurbuy']);
supplement_rate_val = Math.round(auto_array['supplement'] * auto_array['profit_rate'] * auto_array['no_of_day'] * auto_array['currency_rate'] / auto_array['eurbuy']);
if(!isNaN(pprice_val) && pprice_val != 'Infinity') {
pprice.val(pprice_val);
}
if(!isNaN(price_val) && price_val != 'Infinity') {
price.val(price_val);
}
if(!isNaN(total_cost_val) && total_cost_val != 'Infinity') {
total_cost.val(total_cost_val);
}
if(!isNaN(pprice_total_val) && pprice_total_val != 'Infinity') {
pprice_total.val(pprice_total_val);
}
if(!isNaN(supplement_rate_val) && supplement_rate_val != 'Infinity') {
supplement_rate.val(supplement_rate_val);
}
form_data = $(this).closest('tr').find('input,select').serialize();
$.ajax({
data: {
action: 'update_data',
form_data: form_data,
},
url: 'updates_ok.php',
type: 'post',
beforeSend: function() {
},
success: function(data) {
if(data == 1){
alert('update sucessful');}
}
});
});
};
</script>
update.php
<?php
if($_POST['action'] == 'update_price'){
//parse the serialize data
parse_str($_POST['form_data'], $my_form_data);
/*echo "<pre>";
print_r($my_form_data);*/
header("Content-Type: text/html; charset=utf-8");
include("connMysql.php");
$seldb = @mysql_select_db("phpmember");
if (!$seldb) die("cannot connect to the database!");
$id = $my_form_data['id'];
$gp_name = $my_form_data['gp_name'];
$price = $my_form_data['price'];
$cost = $my_form_data['cost'];
$no_of_day = $my_form_data['no_of_day'];
$total_cost = $my_form_data['total_cost'];
$profit_rate = $my_form_data['profit_rate'];
$currency_rate = $my_form_data['currency_rate'];
$eurbuy = $my_form_data['eurbuy'];
$pprice = $my_form_data['pprice'];
$qua = $my_form_data['qua'];
$supplement = $my_form_data['supplement'];
$supplement_rate = $my_form_data['supplement_rate'];
$pprice_total = $my_form_data['pprice_total'];
$vat = $my_form_data['vat'];
$type = $my_form_data['type'];
$supplier = $my_form_data['typeahead'];
$sql= $query = $finalquery = $sqlresult = '';
if($cost){
$sql.="cost='$cost',";
}
if($profit_rate){
$sql.="profit_rate='$profit_rate',";
}
if($currency_rate){
$sql.="currency_rate='$currency_rate',";
}
if($price){
$sql.="price='$price',";
}
if($pprice){
$sql.="pprice='$pprice',";
}
if($eurbuy){
$sql.="eurbuy='$eurbuy',";
}
if($no_of_day){
$sql.="no_of_day='$no_of_day',";
}
if($total_cost){
$sql.="total_cost='$total_cost',";
}
if($qua){
$sql.="qua='$qua',";
}
if($supplement){
$sql.="supplement='$supplement',";
}
if($supplement_rate){
$sql.="supplement_rate='$supplement_rate',";
}
if($pprice_total){
$sql.="pprice_total='$pprice_total',";
}
if($vat){
$sql.="vat='$vat',";
}
if($type){
$sql.="type='$type',";
}
if($supplier){
$sql.="supplier='$supplier',";
}
$finalquery = rtrim($sql,',');
$query="UPDATE `gp_info` SET $finalquery where id=$id";
$sqlresult=mysql_query($query);
if($sqlresult){
$reback=1;
}else{
$reback=0;
}
echo $reback;
}
if($_POST['action'] == 'update_data'){
//parse the serialize data
parse_str($_POST['form_data'], $my_form_data);
/*echo "<pre>";
print_r($my_form_data);*/
$gp_name = $my_form_data['gp_name'];
$date = $my_form_data['date'];
$day = $my_form_data['day'];
$day_week = $my_form_data['day_week'];
$country = $my_form_data['country'];
$city = $my_form_data['city'];
$pax = $my_form_data['pax'];
$profit_rate = $my_form_data['profit_rate'];
$sql= $query = $finalquery = $sqlresult = '';
if($date){
$sql.="date='$date',";
}
if($day){
$sql.="day='$day',";
}
if($day_week){
$sql.="day_week='$day_week',";
}
if($country){
$sql.="country='$country',";
}
if($city){
$sql.="city='$city',";
}
if($pax){
$sql.="pax='$pax',";
}
if($profit_rate){
$sql.="profit_rate='$profit_rate',";
}
$finalquery = rtrim($sql,',');
$query="UPDATE `gp_info` SET $finalquery where gp_name='$gp_name' AND date='$date' AND day='$day'";
$sqlresult=mysql_query($query);
if($sqlresult){
$reback=1;
}else{
$reback=0;
}
echo $reback;
}
?>
Я попытался выполнить поиск в Интернете, но не могу найти соответствующую информацию, подходящую для моей ситуации.Надеюсь, кто-нибудь сможет мне помочь.