AJAX заблокировано на одном входе - PullRequest
0 голосов
/ 20 апреля 2020

Мне нужно выставить счет для моего клиента, используя jQuery и AJAX. Все хорошо, я создал алгоритм автозаполнения цены, количества и итога. Вызов AJAX выполняется, когда первая буква продукта вводится при вводе имени, а подсказка показывается внизу ввода. Когда мне нужно добавить продукт, jQuery удаляет класс «активный» из входных данных и создает еще одну строку с классом «активный». Проблема в том, когда я пытаюсь завершить второй или третий или ... ввод. AJAX остается заблокированным на первом этапе, у которого нет «активного» класса. Когда я пытаюсь ввести какое-либо имя во второй форме ввода, оно не работает, только если я нажимаю клавишу ввода в первой форме ввода, и показывает результаты во второй форме ввода из первой. Нижний код:

HTML: <tr align='center'>
                <td>1</td>
                <td><input type='text' class='name active' name='product'><br/> <input type='text' class='name_finded active' name='product[]' readonly></td>
                <td>Buc</td>
                <td ><input type='text' class='cantitate active'></td>
                <td ><input type='text' readonly value='0' class='pret_unitar active' readonly></td>
                <td class='pret_3x4 active'></td>
                <td class='val_tva active'></td>
            </tr>
JS:
$('.name.active').on('input',function(){ 
        var query = $('.name.active').val();
        if(query != ''){
            $.ajax({
                url: 'get_product_data.php',
                method: 'POST',
                data:{query:query},
                dataType: "json",
                success:function(data){
                    var nume = data['nume'];
                    var pret = data['pret'];
                    pret_ftva = pret-(pret*0.19);
                    $(".pret_unitar.active").val(pret_ftva);
                    $(".name_finded.active").val(nume);
                }
            });
        }

});
PHP:
    require "../config.php";


    $conn = new mysqli($sv, $us, $pa, $db);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $value = mysqli_real_escape_string($conn, $_POST['query']);

    $sql = "SELECT * FROM clienti WHERE nume LIKE '%$value%'";

    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // output data of each row
        $row = mysqli_fetch_array($result);
        $nume = $row['nume'];
        $cui = $row['cui'];
        $orc = $row['orc'];
        $localitate = $row['localitate'];
        $adresa = $row['adresa'];
        $iban = $row['iban'];
        $banca = $row['banca'];
        $reprezentant = $row['reprezentant'];
        $ci = $row['ci'];
        $telefon = $row['telefon'];
        $mail = $row['mail'];

        $arr = array("nume"=>$nume, "cui"=>$cui, "orc"=>$orc, "localitate"=>$localitate, "adresa"=>$adresa, "iban"=>$iban, "banca"=>$banca, "reprezentant"=>$reprezentant, "ci"=>$ci, "telefon"=>$telefon, "mail"=>$mail);
        echo json_encode($arr);
    }
    $conn->close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...