#php #mysql #html
#php #mysql #HTML
Вопрос:
Я разрабатываю форму счета-фактуры на продажу. Я могу извлекать данные из MySQL для выбора.
Когда дело доходит до товаров, количество товаров является переменным. Иногда это 3 элемента, а иногда и 20.
Как мне добавлять строки и удалять строки на основе введенных пользователем данных для количества требуемых строк (все эти строки будут раскрывающимися списками выбора, извлеченными из MySQL)?
Комментарии:
1. Я не уверен, что вы пытаетесь сказать. Не могли бы вы добавить еще несколько деталей, пожалуйста?
2. Помимо более подробной информации, пожалуйста, добавьте структуру вашей базы данных и код, который у вас есть на данный момент. Сложно догадаться.
Ответ №1:
Это то, что вы можете сделать с помощью комбинации PHP, Jquery и Ajax.
<script>
$('select[name=items]').change(function () {
// If selected value is bigger than 0
if ($(this).val() > 0 ) {
$.post("get-items.php", {itemval: $(this).val()}, function(data) {
//$('#items').fadeIn('slow'); // Remove the beginning // to use this effect.
$('#items').html(data);
});
}
});
</script>
Теперь здесь важно;
- Имя вашего поля выбора — товары
- Когда значение поля выбора товаров изменится (и если оно больше 0), оно отправит значение в get-items.php .
-
get-items.php в нем должно быть эхо с использованием html (если вы хотите). Например:
Вы хотите перечислить данные с некоторыми элементами html;
<ul> <li>First Item</li> <li>Second Item</li> <li>Third Item</li> </ul>
Ваш get-items.php должен выводиться (echo) таким образом, чтобы использовать его на своей странице (представьте это как include. Что бы вы ни выводили эхом, оно будет включено со всеми содержащимися в нем html-элементами на страницу, где вы хотите это использовать.
-
Как только ваш get-items.php вернет некоторый вывод, код соберет выходные данные и добавит ответ к элементу, у которого есть идентификатор items. Например;
<div id="items"></div>
-
Вы можете собирать учтенную стоимость в get-items.php;
$itemValue = $_POST['itemval'];
Как только вы сможете собрать информацию о стоимости товара (показывать, не показывать, показывать ограниченно и т.д. — это ваше решение) с помощью PHP, после этого вам решать, что отображать в браузере.
Надеюсь, я правильно вас понял, и я надеюсь, что это поможет.
Редактировать
После вашего комментария о сборе дополнительной информации в зависимости от выбора пользователя (это может быть 1 или более), поэтому я считаю, что самым простым способом будет следующее;
Мы будем использовать Json с Jquery.
$.getJSON('get-product-info.php', function(data) {
// Create an array
var productSetup = [];
// Loop and assign Json (returned value) to our new setup array
$.each(data, function(key, val) {
productSetup[key] = val;
// Add values to html elements and other actions here.
});
});
То, что мы здесь сделали, довольно просто. Мы собрали информацию о продукте (ах) из get-product-info.php с помощью Jquery и Json. Мы создали массив productSetup jquery и присвоили возвращаемые значения из get-product-info.php
Когда вы собираете данные из get-product-info.php для упрощения нашей жизни мы будем использовать Json, чтобы иметь возможность переводить данные из PHP в Jquery.
get-product-info.php Важная информация
- После выполнения запроса создайте новый массив, чтобы возвращать результаты в виде массива.
- Собранный массив новых результатов должен быть закодирован с помощью json и отображать его эхом, чтобы Jquery мог его захватить.
Пример
<?php
#Assuming $data is your new results array
echo json_encode($data);
?>
Мы используем Json для простой передачи данных с одного языка на другой. Напрашиваясь на мой ответ, я уже дал вам код для отправки информации. Когда пользователь сделает больше вариантов, просто отправьте их вашему php-скрипту и соберите возвращенные результаты с помощью Json, чтобы изменить html-элементы на вашей странице.
Пожалуйста, ознакомьтесь с руководством пользователя PHP json_encode и с руководством пользователя PHP json_decode для получения дополнительной информации.
Я надеюсь, что это поможет
Комментарии:
1. спасибо за ответ. я также ищу совета о том, как отобразить название продукта из базы данных на основе выбора идентификатора продукта пользователем. а затем добавляем другие поля, такие как цена за единицу, общая сумма и т.д.
2. Что ж, тогда нам нужно добавить 4-ю вещь. Json.
3. Отредактировал мой ответ. Пожалуйста, проверьте.