Динамически обновлять количество, когда то же значение уже существует (JavaScript / PHP / SQL)

#javascript #php #mysql #sql

#javascript #php #mysql #sql

Вопрос:

1 — addlist.php На этой странице у меня есть только текстовый ввод. Я могу сканировать штрих-код, который дает мне текстовый результат на входе (например: «банан»).

2 — validaiton.php Эта страница подключает мою базу данных SQL и проверяет, введено ли значение в текстовое поле моей другой страницы (addlist.php ) находится в моей базе данных.

3 — addlist.php Если значение существует в базе данных, задайте сообщение и поместите значение в список. Если нет, задайте другое сообщение и ничего не делайте.

/! Для информации: у меня есть сканер штрих-кода, поэтому я не мог нажать кнопку или отобразить значение в списке. Поэтому я решил установить таймер, и каждые 800 мс он принимает значение и очищается. При этом я могу сканировать значение, отображать и удалять его динамически, не прикасаясь к клавиатуре. /!

addlist.php

 <input type="text" id="IDAlim">

<div class="col-md-6">
<section>
        <li id="demo"></li>
</section>
</div>

<script src="jsjquery.js"></script>
<script type="text/javascript">

var list = document.getElementById('demo');
$(document).ready(function()
{

putIn();
function putIn() {

    var focused = $(':focus');
    $("#IDAlim").focus();
    focused.focus();

    var IDAlim = document.getElementById('IDAlim').value;
    var quantite = "1";
    var entry = document.createElement('li');       

    if(IDAlim != "")
    {       
            $.post('validation.php',{IDAlim: $('#IDAlim').val()}, function(data){
                if(data.exists){
                    alert('Is in DB');
                    $("#demo").append('<li class="list-group-item">' IDAlim ' ' quantite 'x' '</li>');  
                }else{
                    alert('Re-Scan please');
                }
             }, 'JSON');

        setTimeout(function(){ putIn() }, 800);
        $("#IDAlim").val('');
    }
    else
    {
        entry.appendChild(document.createTextNode(IDAlim));
        setTimeout(function(){ putIn() }, 800);
        $("#IDAlim").val('');
    }

}


})
</script>
  

validation.php

 <?php 

//set the headers to be a json string
header('content-type: text/json');

//no need to continue if there is no value in the POST IDAlim
if(!isset($_POST['IDAlim']))
    echo json_encode(array('non' => 'POSTError'));



//Variable for db connection
$host="localhost";
$user="root";
$pass="";
$dbname="aliments";

try
  {  
    $dbcon = new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

    $query = $dbcon->prepare('SELECT nom FROM tblaliments WHERE nom = :nomAlim');

    $query->bindParam(':nomAlim', $_POST['IDAlim']);

    $query->execute();

    //return the json object containing the result of if the IDAlim exists or not. The $.post in my jquery will access it.
echo json_encode(array('exists' => $query->rowCount()));
  }
  catch (Exception $e)
  {
    echo json_encode(array('non' => 'PDOError'));
  }
?>
  

Я бы обновил свое количество при сканировании того же значения, в моем случае я поставил ожидающий «1» для «quantite» (= количество на французском языке), чтобы показать вам пример.

Это моя проблема введите описание изображения здесь

Что я хотел бы иметь

введите описание изображения здесь

Заранее благодарю вас за помощь и прошу прощения за мой плохой английский (я говорю по-французски)

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

1. Можете ли вы предоставить нам свою структуру таблицы tblaliments?

2. insert ... on duplicate key update ... был бы ответ на стороне sql