Как использовать массив в jQuery, массив которого можно прочитать в php? - PullRequest
0 голосов
/ 03 февраля 2020

Как я могу использовать массив в следующих кодах для чтения данных из массива в php? На самом деле в l oop я пишу что-то вроде этого, но я знаю, как я могу сделать это выше массива в кодах ниже

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $(".add-row").click(function() {
      //var name = $("#name").val();
      //var quantity = $("#quantity").val();
      //var email = $("#email").val();
      var markup = "<tr><td><input type='checkbox' name='record'></td><td> <input type='text' name='name'> </td><td> <input type='text' name='quantity'> </td><td> <input type='text' name='email'> </td></tr>";
      $("table tbody").append(markup);
    });

    // Find and remove selected table rows
    $(".delete-row").click(function() {
      $("table tbody").find('input[name="record"]').each(function() {
        if ($(this).is(":checked")) {
          $(this).parents("tr").remove();
        }
      });
    });
  });
</script>

<body>
  <form>
    <input type="button" class="add-row" value="Add Row">
  </form>
  <table>
    <thead>
      <tr>
        <th>Select</th>
        <th>Name</th>
        <th>Quantity</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><input type="checkbox" name="record"></td>
        <td><input type="text" id="name" /></td>
        <td><input type="text" id="quantity" /></td>
        <td><input type="text" id="email" /></td>
      </tr>
    </tbody>
  </table>
  <button type="button" class="delete-row">Delete Row</button>
</body>

Пожалуйста, кто-нибудь может мне помочь

Ответы [ 2 ]

0 голосов
/ 04 февраля 2020

Принципиально (!) Javascript работает на "клиентском" компьютере ... вашей машине ... в то время как PHP работает на "серверном" компьютере. Это два отдельных компьютера .

Вы должны спроектировать свое приложение так, чтобы две стороны общались каким-либо подходящим образом, например, используя AJAX. Например, каждый раз, когда ваш пользователь вставляет новую строку в таблицу (и заканчивает заполнять ее), код JavaScript должен был бы обнаружить это и сделать вызов AJAX, отправляющий новую информацию в PHP. Аналогично для изменения и удаления.

Но ... вам не нужно начинать слепо здесь. Этот очень знакомый сценарий называется "CRUD" = Создать, Удалить, Обновить, Удалить. Уже есть встроенные системы, которые делают это, например, почтенная библиотека «Datatables» JavaScript, и соответствующий код стороны PHP, необходимый для их управления, также легко доступен в виде загружаемых пакетов PHP. Поэтому отойдите на несколько минут от того, что вы делаете, и «сделайте поиск в Google». «Не делайте ничего уже сделанного».

Если вы хотите посмотреть исходный код примеры, которые не основаны на больших JS библиотеках перейдите на https://github.com (одну из самых известных в мире библиотек программного обеспечения), и найдите (скажем ...) php crud. Вы получите более 9000 результатов. Просто выберите один и осмотрите его исходный код. Посмотрите, что они сделали и как они это сделали. (И, если это не домашнее задание, не стесняйтесь воровать!)

0 голосов
/ 03 февраля 2020

Вы можете использовать запрос AJAX, который jQuery включает в свой API: https://api.jquery.com/jquery.ajax/

Вы можете сделать что-то вроде этого:

// Make sure you send a JSON object
var some_data_for_the_backend = {
    "lorem": "ipsum",
    "abc": 123
}

$.ajax({
    // I add the timestamp at the end of the URL 
    // so we can avoid any kind of cache, but you can skip that part
    url: "path/to/script.php?t="+$.now(),
    type: "POST",
    data: some_data_for_the_backend,
}).done(function (response) {
    // Do something with your backend response if you want to, like:
    console.log(response);
});

Тогда в вашем script.php или как бы там ни было это имя, вам просто нужно получить данные $_POST, например:

$lorem = $_POST["lorem"];
$abc = $_POST["abc"];

//Output: "ipsum"
echo $lorem;

//Output: "134"
echo $abc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...