Intereting Posts
Графические диаграммы Highcharts могут иметь ссылки на URL Nginx: WordPress в качестве подкаталога на маршрутах Rails неправильно как извлечь закодированный DER-сертификат из строки base64 Вставьте данные в базу данных MySQL из приложения Android. Изменения не отражены в базе данных PHP + MySQL: разница между буферизированными и небуферизованными запросами Где изображение пользователя хранится в Drupal 7? Высокая загрузка процессора из-за Ajax Shoutbox Форсировать Content-Type для файлов без расширения в EclipsePDT? Автоматически использовать __LINE__ и __FILE__ относительно функции where Интегрируйте считыватель штрих-кода для создания / чтения с помощью Codeigniter Laravel – многие-ко-многим, где таблица «многие-ко-многим» (частично) полиморфна Не удается получить статус флажка Мой сайт заражен запутанным вредоносным программным обеспечением PHP – что он делает +, как я могу избавиться от него? как получить роль от Zend_Auth / Zend_ACL при использовании адаптера Doctrine? все вместе Мне нужно регулярное выражение php для числового значения, включая «-» и «,»,

Создание нового массива из входа Laravel 4

Я получаю некоторый вклад от динамически сгенерированной формы (я использую jQuery, чтобы позволить пользователю добавлять поля) с помощью Input :: all (). Имена полей: 'first_names []', 'last_names []' и 'emails []'.

Теперь переменная $ input выглядит так:

array (size=4) '_token' => string '3VCQFUmAx8BNbSrX9MqjGtQhYovOaqecRUQSAL2c' (length=40) 'first_names' => array (size=1) 0 => string 'John' (length=4), 1 => string 'Jane' (length=4) 'last_names' => array (size=1) 0 => string 'Doe' (length=3), 1 => string 'Doe' (length=3) 'emails' => array (size=1) 0 => string 'johndoe@example.com' (length=24), 0 => string 'janedoe@example.com' (length=24) 

Я хочу создать массив из этого ввода, который выглядит так:

 array ( 0 => array( 'first_name' => 'John', 'last_name' => 'Doe', 'email' => 'johndoe@example.com' ), 1 => array( 'first_name' => 'Jane', 'last_name' => 'Doe', 'email' => 'janendoe@example.com' ) ) 

Есть ли простой способ сделать это без повторения каждого массива и создания новых? Есть ли лучший способ генерировать ввод? Благодарю.

Хорошо, ребята, с помощью alexrussell в Laravel IRC мы это выяснили.

Во-первых, JS:

 var delegateId = 0; $('.add-delegate').click(function() { $.get('/add-delegate/' + delegateId++, function(html) { $(html).appendTo('#delegates'); }); }); $(document).on('click', '.remove-delegate', function() { $(this).parent().parent().remove(); }); 

Мы создаем переменную delegateId, которую добавляем к URL-адресу запроса на получение, а затем в наших маршрутах.php мы делаем:

 Route::get('add-delegate/{id}', function($id) { return View::make('admin.bookings.partials.add-delegate', compact('id')); }); 

Это отправляет идентификатор в представление, которое мы используем для создания полей формы. Тогда в форме мы делаем:

 <div class="row-fluid"> <div class="span12"> <input type="text" name="delegates[{{ $id }}][first_name]" placeholder="First Name"> <input type="text" name="delegates[{{ $id }}][last_name]" placeholder="Last Name"> <input type="text" name="delegates[{{ $id }}][email]" placeholder="Email"> <label class="checkbox"> <input type="checkbox" name="delegates[{{ $id }}][prerequisites]"> Prerequisites </label> <button type="button" class="btn btn-danger remove-delegate">Remove</button> </div> </div> 

Как только мы получим вход для делегатов, используя:

 Input::get('delegates') 

У нас есть хороший массив для работы, это именно то, что мы делаем:

 array (size=2) 0 => array (size=3) 'first_name' => string 'John' (length=4) 'last_name' => string 'Doe' (length=3) 'email' => string 'johndoe@example.com' (length=19) 1 => array (size=3) 'first_name' => string 'Jane' (length=4) 'last_name' => string 'Doe' (length=3) 'email' => string 'janedoe@example.com' (length=19)