Форма счета-фактуры на продажу

#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 Важная информация

  1. После выполнения запроса создайте новый массив, чтобы возвращать результаты в виде массива.
  2. Собранный массив новых результатов должен быть закодирован с помощью 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. Отредактировал мой ответ. Пожалуйста, проверьте.