Мне нужно создать массив ассоциативных массивов для отправки того же сценария php в качестве сообщения ajax. Как мне это сделать?
Чтобы быть более конкретным, у меня есть строки из двух входов с именами «Имя» и «Фамилия». Когда я нажимаю кнопку отправки, это должно генерировать массив, например:
var name_array = [{"first_name" : string1, "last_name" : string2}, {"first_name" : string3, "last_name" : string4}, . . .]
Затем я отправлю этот массив в php через сообщение ajax. Если построена выше конструкция, то какой должен быть синтаксис для отправки name_array в качестве данных в php-скрипт?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> <script> $(document).ready(function() { var hold_data = {}; $(document).on('click','#submit',function() { $("#myform .field").each(function() { hold_data[$(this).attr('name')] = $(this).val(); }); var json_data = JSON.stringify(hold_data); alert(json_data); $.ajax( { url:'', //url location for where you want to submit the data type:'post', data:{form_data:json_data}, success:function(res) { alert("Successfully sent and your response "+res); } }); }); }); </script> </head> <body> <form id="myform" action=""> First name: <input type="text" class="field" name="FirstName" value="Tom"><br> Last name: <input type="text" class="field" name="LastName" value="Raze"><br> <input type="button" id="submit" value="Submit"> </form> </body>
Если вы отправляете сообщение на php-страницу, вы можете декодировать данные json, как показано ниже.
Эхо-значение темпа будет отображаться как данные res res ответа в ajax
<?php if(isset($_POST['form_data'])) { $temp = json_decode($_POST['form_data']); echo temp; } ?>