2015-06-04 3 views
0

Мне нужно заполнить ассоциативный массив из ввода формы. Каждый раз, когда пользователь нажимает кнопку отправки, он запускает скрипт PHP, затем перенаправляет их обратно в форму, в которой они могут добавить в массив другую пару значений ключа.PHP-ассоциированный массив, заполненный формой ввода

<form action="submit.php" method="post" name="form-one"> 
    <input type="text" name="name"> 
    <input type="text" name="id"> 
    <button type="submit">Submit</button> 
</form> 

<?php 
    //Add input vales to associative array dynamically 
?> 

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

+0

волшебное слово здесь AJAX – treegarden

+0

Где/как вы храните данные? – jeroen

+0

Refer http://stackoverflow.com/questions/14390042/my-array-values-keep-dissapearing-and-refreshing-in-php – sAcH

ответ

2

Ну, это будет немного сложнее, поскольку скрипт php выполняется каждый раз, когда форма передается, а затем завершается. То, что вы можете сделать, это сохранить предыдущие данные где-то, в базе данных или сериализовать их в файл, а затем просто прочитать файл при выполнении, а затем добавить к нему самую новую запись.

Другой способ сделать это, используя сеансы. Вы можете сохранить массив в переменной сеанса, например. $_SESSION['array'], и просто присоединяйте к нему каждый раз, когда ваша форма обрабатывается.

0

Это нехорошее решение, не можете ли вы напрямую работать с данными, которые отправляются? В вашем procss вам нужно будет поместить значения в сеанс, что впоследствии сделает ненужным работу.

if(isset($_POST['form-one'])){ 
    $_SESSION[formData[$_POST['id']]] = $_POST['name']; 
} 

Это положило бы массив formdata в вашем массиве session, id станет индексом и назовите значение.

+0

Я получаю ошибку Проверка синтаксиса PHP: Ошибка синтаксиса: ошибка синтаксиса, неожиданная '[ ', ожидая'] 'в вашем коде –

Смежные вопросы