Добавить пользовательский ввод в массив - PullRequest
0 голосов
/ 06 августа 2011

Я пытаюсь добавить пользовательский ввод в ранее созданный массив с помощью array_merge. Однако у меня возникают проблемы с отображением всего нового массива в виде неупорядоченного списка. запись пользователя обрабатывается правильно, но исходный массив отображается как «Массив» в неупорядоченном списке. Вот код:

<?php
$travel = array("Automobile", "Jet", "Ferry", "Subway");

foreach ($travel as $t)
    {
    echo "<ul>";

    echo "<li>$t</li>";

    echo "</ul>";

    }
?>

<form action="arrays.php" method="post">
<input type="text" name="added" />
<?php

foreach ($travel as $t)
{
echo "<input type=\"text\" name=\"travel[]\" value=\"$t\" />";      
}

?>
<input type="submit" name="submit" value="Add More!" />
</form>

<?php

$travel = array($_POST["travel"]);

$added = explode(",", $_POST["added"]);

$travel = array_merge($travel, $added);

echo "<p> Here is the list with your additions:</p>";

echo "<ul>";

foreach ($travel as $t)
{
echo "<li>$t</li>";
}

echo "</ul>";
?>

Ответы [ 3 ]

0 голосов
/ 06 августа 2011
$travel = array($_POST["travel"]);

должно быть

$travel = $_POST['travel'];
0 голосов
/ 06 августа 2011

Проблема была решена таким образом:

if (isset($_POST["submit"]))
{
$travel = $_POST["travel"];
$added = explode(",", $_POST["added"]);
$travel = array_merge($travel, $added);


echo "<p> Here is the list with your additions:</p>";

echo "<ul>";

foreach ($travel as $t)
    {
    echo "<li>$t</li>";
    }

echo "</ul>";
}
?>
0 голосов
/ 06 августа 2011

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

...