WordPress добавляет данные в таблицу с новыми сгенерированными строками

В wordpress у меня есть такая форма

<form id="data-form" action="">
    <table id="user-data">
        <tr>
            <td>Name</td>
            <td>Email</td>
        </tr>
        <tr>
            <td><input type="text" name="name"></td>
            <td><input type="text" name="email"></td>
        </tr>
    </table>
    <button type="submit" value="submit" name="submit">Submit</button>
</form>

Поэтому, когда я нажимаю кнопку отправки, он вставляет данные в таблицу, как это

global $wpdb;
if ( isset($_POST['submit']) ) {
  $wpdb->insert(
    'fl_user_data', 
    array(
      'id' => '',
      'name' => $_POST['name'],
      'email' => $_POST['email'])
  );
  echo 'success';
}

и он вставляет значения в базу данных. Теперь я использовал кнопку внутри формы, которая называется «Добавить строку». Таким образом, кнопка добавляет строку в таблицу. Теперь, когда я нажимаю кнопку, он добавляет строку в таблицу, подобную этой

<a href="#" id="add-row">+Add Row</a>
<script>
  $('body').on('click', '#add-row', function(e) {
    var Html = $('<tr><td><input type="text" name="name"></td><td><input type="text" name="email"></td></tr>');
    $('table#user-data').append(Html);
  });
</script>

Этот добавляет строку, когда я нажимаю кнопку добавления строки. Поэтому, когда после того, как все поля были заполнены новыми строками, и я нажимаю кнопку отправки, он вставляет только одно значение строки. Так может кто-нибудь сказать мне, как вставлять строки данных в таблицу базы данных в строках. Любая помощь и предложения будут действительно ценны. Спасибо


person NewUser    schedule 08.09.2014    source источник
comment
Вам нужно использовать Ajax для получения данных из базы данных...   -  person Asher    schedule 08.09.2014
comment
@ Анас Я не хочу получать данные из базы данных. Я хочу вставить их все за один раз.   -  person NewUser    schedule 08.09.2014
comment
Таким образом, вы можете использовать собственный SQL-запрос и выполнить его :)   -  person Asher    schedule 08.09.2014
comment
Да, я хочу знать, что пользовательский SQL-запрос нужно выполнить;)   -  person NewUser    schedule 08.09.2014
comment
Разве это не то, что вы ищете?   -  person Asher    schedule 08.09.2014


Ответы (1)


Поскольку все поля, которые вы добавляете, имеют одно и то же имя (имя, адрес электронной почты), каждое поле просто перезаписывает следующее.

Что вам нужно сделать, так это каждый раз, когда вы добавляете поле, делать имя уникальным известным способом. Так, например, name1, email1; имя2, электронная почта2; имя3, электронная почта3 и так далее. Затем в вашем сценарии вставки вам нужно прокручивать и добавлять их по одному.

Лучшим способом может быть наличие скрытого поля, называемого чем-то вроде «row_count», которое вы увеличиваете каждый раз, когда добавляется строка, таким образом, на стороне PHP вы просто используете это число, предоставленное для цикла, без необходимости выяснять, сколько строк вы имеют.

Не забудьте дезинфицировать все входные данные и т. д.

person Dan Walker    schedule 08.09.2014
comment
спасибо за предложения, но не могли бы вы сказать мне, как вставить их, даже после того, как я сделаю их имя, например name1, email1; имя2, электронная почта2; имя3, электронная почта3 и так далее. я хочу знать это - person NewUser; 08.09.2014
comment
Я как бы уже сказал это выше. Вы можете использовать целое число javascript в скрытом поле, или вы можете просто просмотреть каждую переменную с числом после нее, пока не закончите. - person Dan Walker; 09.09.2014