#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