Не работает оповещение в ajax и php-контенте

#php #ajax

#php #ajax

Вопрос:

Я пытаюсь получить значение из своей базы данных, а затем запустить обновление, используя всплывающее окно с предупреждением, но оно не работает. Появляется всплывающее предупреждение, и как только значение введено, оно отображает введенное, но не работающее значение. ниже приведен мой фактический ajax-код:

viewproduct.php

 <script>
     
    $(document).ready(function() {
    $('.btnupdatestock').click(function() {
        var id = $(this).attr("id");
        //var new_stock = $(this).val();


        swal("Add Stock:", {
          content: "input",
            
        })
        .then((updateStock) => {
        $.ajax({
            type: 'POST', 
            url: 'stock-in.php',
            data:{
                stock_up: updateStock,
            },
            success: function(data){
                 swal(`Updated: ${updateStock}`);
            },
            error: function(data){
                swal(`Error updating: ${updateStock}`);
            }
        });
            
            
          
        });
    
        });
    });


</script>

 

вышеупомянутый метод был разработан для запуска sql в stock-in.php и код в stock-in.php находится ниже:

 <?php

include_once'connectdb.php';

if($_SESSION['useremail']=="" OR $_SESSION['role']=="Admin"){
    
    
    header('location:index.php');
}



$idd=$_GET['id'];  
    $select=$pdo->prepare("select * from tbl_product where pid=$idd");          
    $select->execute();
        while($row=$select->fetch(PDO::FETCH_OBJ)){
            $productName    = $row['pname'];
            $oldstock       = $row['pstock'];
            
            

            //$id=$_POST['uid'];
            $stockup=$_POST['stock_up'];
            alert('I clicked');
            
            $new_stock = $oldstock   $stockup;

                $sql="UPDATE `tbl_product` SET `pstock` = ? WHERE  pid= ? ";
                    $update=$pdo->prepare($sql);
                    $update->execute([$new_stock, $idd]);

            if($result){
               echo'Stock updated!';
            }else{
              echo'Error in updating stock';  
            }
        }

?>
 

ниже приведено изображение моего пользовательского интерфейса, которое показывает всплывающее окно, но оно не обновляется.
введите описание изображения здесь

Это то, что я намерен сделать: если пользователь нажимает на обновление и вводит значение, скажем, 50, он должен извлечь старый запас (база данных, скажем, 100) и добавить к новому запасу (введенное значение, скажем, 50), а затем обновить базу данных на 150. Я застрял здесь, и любая помощь будет оценена. Спасибо.

Комментарии:

1. Что такое вызов alert в середине PHP-кода? Кроме того, если вы делаете fetch(PDO::FETCH_OBJ) , не должно ли это быть $row->pname вместо $row['pname'] ?

2. Привет, вы не передали id значение на серверную страницу.

3. Я сделал, но это не было проблемой. спасибо за ваш ответ.

Ответ №1:

  $(document).ready(function() {
        $('.btnupdatestock').click(function() {

            swal("Add Stock:", {
                buttons: true,
                closeModal: true,
                content: "input",
            }).then((updateStock) => {
                if (updateStock === "") {
                    swal("You need to write something!");
                return false
            }else{
                $.ajax({
                    type: 'POST', 
                    url: 'stock-in.php',
                    data:{
                        stock_up: updateStock
                         <?php 
                        echo ', id: '.$row->pid.' '
                        ?>
                        <?php 
                        echo ', oldstock: '.$row->pstock.' '
                        ?>
                    },
                    success: function(data){swal(`Updated: ${updateStock}`);},
                    error: function(data){swal(`Error updating: ${updateStock}`);}
                });
            }

            });

        });
    });
 

Основная проблема, с которой я столкнулся, заключалась в том, что я не сделал SQL-запрос глобальным в верхней части своей страницы, а затем применил '.$row->pid.'