Как сохранить в базу данных, используя ajax - PullRequest
1 голос
/ 11 июля 2020

У меня есть код, который работает нормально, но данные не могут быть сохранены в базе данных. Я хочу вставить в базу данных cost, currency_rate, profit_rate и pprice через Ajax. Вот код javascript и обновление. php, я пытался изменить код для сохранения на моем Mysql сервере, но это не увенчалось успехом. Может кто с этим помочь?

javascript

$(".profitRate").change(function() {
    var myArray = [];
    //find closest table->next table
    var elem = $(this).closest('table').next('table');
    var action = elem.find('tr').data('action');
    console.log(action)

    var profitRate = Number($("#profitRate").val());
    //looping 
    elem.find('tr').each(function() {
        //get cost
        var cost = $(this).find('input[name=cost]').val();
        //get curency rate
        var currecy_rate = $(this).find('select[name=currency_rate]').val();
        //calculate profit
        var profit_total = Math.round(cost * profitRate * currecy_rate)
        $(this).find('input[name=pprice]').val(profit_total)
        //add to json object
        auto_array = {};
        auto_array["cost"] = cost;
        auto_array["currecy_rate"] = currecy_rate;
        auto_array["pprice"] = profit_total;
        myArray.push(auto_array) //push to array
    });
    console.log(myArray)

    form_data = elem.find('tr').data('action');
    $.ajax({
        data: {
            action: action,
            form_data: form_data,
        },
        url: 'update.php',
        type: 'post',
        beforeSend: function() {

        },
        success: function(data) {
            if(data == 1){

            }
        }
    });
})

обновление. php

<?php

if ($_POST['action'] == 'update_price') {
    parse_str($_POST['form_data'], $my_form_data);

    $id = $my_form_data['id']; 
    $cost = $my_form_data['cost']; 
    $profit_rate = $my_form_data['profit_rate']; 
    $currency_rate = $my_form_data['currency_rate']; 
    $pprice = $my_form_data['pprice'];

    $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 ($pprice){
        $sql.="pprice='$pprice',";

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