получить идентификатор и значение из всех входных элементов и передать их через ajax

У меня есть куча текстовых полей ввода, которые я хочу поместить в массив (id и значение) и пройти через ajax. После того, как он будет передан моему php-коду, мне нужно пропустить его и сохранить идентификатор и значение в базе данных. (1 строка для каждого идентификатора)

$("input").each(function() {
    values[$(this).attr("id")] = $(this).val();
});

Я использую это, чтобы получить значения и создать массив, это то, на что похоже     { "1": "новый", "2": "редактировать", "3": "сохранить", "4": "Удалить"}

Затем я передаю это через ajax, но как мне пройти эти значения и сохранить их?

$taal = $mysqli->real_escape_string($_POST['taal']);
$arr = $_POST['values'];
foreach ($arr as $key => $value) {
    $query = "INSERT INTO words (taal_id, number, word) VALUES ('" . $taal . "','" . $key . "','" . $value . "')";
    $result = $mysqli->query($query) OR die(mysql_error());
}

Это то, что я пытался использовать, но он не работает

запрос ajax

$.ajax( {
    url: "javascript/ajax/taal.php?wat=saveWoorden",
    type: "POST",
    data: {values : values, taal : $('#talen').val()}
}).success(function() {
    $('.talenInfo').html('success');
})
1
Что именно не работает? Это ошибка SQL? Ошибка PHP? Ошибка Javascript? Вы уверены, что запрос AJAX поступает на сервер? Пожалуйста, покажите больше своего кода - и PHP, и Javascript
добавлено автор Ian, источник
Извините, проблема в том, что цикл, который я использую для прохождения значений. Так что скрипт PHP не работает.
добавлено автор eric22269, источник

5 ответы

<�Сильный> HTML:

<input type="text" name="" id="one">
<input type="text" name="" id="two">
<input type="text" name="" id="three">
<input type="submit" value="Submit" id="submit">

<�Сильный> JS

var values = {};
$('#submit').click(function(){
$("input").each(function() {
    values[$(this).attr("id")] = $(this).val();

});
    console.log(JSON.stringify(values));


    });

You can pass a stringify of the object to the PHP and then use the JSON library for parse. Check http://jsfiddle.net/wmrqk/

Надеюсь, поможет!

1
добавлено
thanx, но как его разобрать и прокрутить через php-скрипт? это то, что меня больше всего беспокоит
добавлено автор eric22269, источник

получать значения и идентификатор всех входов и помещать их в массив, а затем их строчить

var values = {};
$("input").each(function() {
    values[$(this).attr("id")] = $(this).val();
});
values = JSON.stringify(values);

в PHP использовать json_decode и цикл foreach

$arr = json_decode($_POST['values']);
$result = $mysqli->query("delete from woorden where taal_id = " . $taal);
foreach ($arr as $key => $value) {
    $query = "INSERT INTO woorden (taal_id, nummer, woord) VALUES ('" . $taal . "','" . $key . "','" . $value . "')";
    $result = $mysqli->query($query) OR die(mysql_error());
}
1
добавлено

Из вашего кода я понимаю, что вы просто сохраняете запрос в переменной и не выполняете его. Вам нужно выполнить запрос SQL в каждой итерации цикла. Если вы используете mysql, вы можете сделать это следующим образом:

mysql_query($query);

Но убедитесь, что вы сначала инициализировали соединение с БД.

1
добавлено

Я не уверен ... Я могу полностью воспроизвести вашу проблему, но я попытался это сделать

<?php
unset($_POST['data'][0]);
print_r($_POST);
?>

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript></script>

<script type='text/javascript'>

  $(document).ready(function()
  {
     $('#submit').click(function(){
     var values = [];


      $("input").each(function() {
      values[$(this).attr("id")] = $(this).val();
      });     

     $.ajax({
     url      : 'try.php',
     data     : {data:values},
     type     : 'POST',
     success  :function(data){alert(success)}
    });
   });}); 
         </script>
               <html>
               <body>
                <form method='post'>
               <input id='1' value='text1'  type='text'/>
              <input id='2' value='text2' type='text'/>
              <input type='button' id='submit' value='submit'/>
             </form>
              </body>
               </html>

what I found is the index 0 in values array is getting empty value so I have to unset It . Make sure that you are also not having same problem because it might violate the database constraint.

DEBUG TIP : print the query to check what values are going on and try to run the query directly in phpmyadmin.. You might come to know what is the error.

You can check the firebug console to get the values that are being posted .

0
добавлено

Вместо отправки отдельного оператора вставки лучше отправить подготовленный оператор insert или опубликовать данные XML, которые могут обрабатываться на стороне db для массовой вставки.

Вы можете подготовить инструкцию xml или bulk insert как это

var query = 'INSERT INTO words (taal_id, word)   ';
$("input").each(function() {
    query += 'Select  ' + $(this).attr("id") + ',' + $(this).val() + '  UNION ALL  ';
});

alert(query);
0
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp