powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Массивы и POST
4 сообщений из 4, страница 1 из 1
Массивы и POST
    #32417972
Buxpb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мааленькая проблемка.

Как корректно передать массив из формы (генерирую) в следующий скрипт и потом корректно обработать?

Пробовал:

1. Cоздаю массив strings[0], strings[1], strings[2]... и т.д.
посредством тега <select>.

2. Если передаю запрос методом get, получаю такую строчку:

.php?strings%5B0%5D=значение&strings%5B1%5D=значение&strings%5B2%5D=значение... и т.д.

то есть, происходит преобразование скобок [] в спецсимволы.

Неужели нельзя это обойти?
Или он сам потом преобразует спецсимволы в скобочки?

Скрипт в студию:

function specadd()
{global $firm,$title,$razdel,$strings;
require("../config.php");

$file=file($_FILES['price']['tmp_name']);
$number=0;
echo "<form name=\"form1\" method=\"post\" action=\"\">";

for($i=0,$flag="0"; $i<count($file); $i++)
{

$data=explode(" ",$file[$i],2);

$title=RawUrlEncode(Addslashes($data[0]));
$cost=str_replace(" ","",$data[1]);
if ($cost==""||$cost==" "||!floatval($cost)) {
echo "<font size=\"2\" face=\"Verdana\"><b>".$data[0]." ".$data[1]."</font></b><br>";

for($j=1;$j<4;$j++) { //Berem eshe 5 positsii.
$data2=explode(" ",$file[$j+$i],2);
echo "<font size=\"1\" face=\"Verdana\">".$data2[0]."<br></font>";
}
echo "<br>";

$flagADD=0;
$result=mysql_query("SELECT * FROM TOPadd WHERE firm='{$firm}'");
while ($row=mysql_fetch_array($result)) {
if ($row["title"]==$data[0]) {
$strings[$number]=$row["razdel"];
echo "<input type=\"hidden\" name=\"{$strings['$number']}\" value=\"{$row["razdel"]}\">";
$flagADD=1;
}
}
if ($flagADD!=1) {
echo "<select name=\"strings['{$number}']\">";
echo "<option value=\"keep\">=====??????? ????????=====</option>";
echo "<option value=\"del\">=====?? ??????? ? ????====</option>";
$result=mysql_query("SELECT * FROM TOPrazdels");
while ($row=mysql_fetch_array($result)) {
echo "<option value=\"{$row["id"]}\">{$row["title"]}</option>";

}
echo "</select> ";
}
$number++;
}

}
echo "<br><br><input type=\"submit\" name=\"addsubmit\" value=\"?????????!\">";
echo "</form>";
}
...
Рейтинг: 0 / 0
Массивы и POST
    #32418026
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так с твоим кодом разбираться мне лень. Отлаживай его сам.
Но результирующий ХТМЛ код должен быть примерно таким:
Код: plaintext
1.
2.
3.
<select name= "strings[значение]" > 
<option value= "keep" >бла бла бла</option>
....
</select>

если поле ХТМЛ-форма будет выглядеть так, то все должно передаваться правильно. При отладке смотри не внешний вид формы а какой ХТМЛ она генерирует ( View Source или просмотр HTML-кода в контекстном меню)
...
Рейтинг: 0 / 0
Массивы и POST
    #32418079
Buxpb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже разобрался.
Когда делаешь постом, всё приходит нормально, массивом.

Так что паника была напрасной.

Кроме того, ставить апострофы в выражениях типа var[number] не нужно, без них работает.
...
Рейтинг: 0 / 0
Массивы и POST
    #32418432
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Кроме того, ставить апострофы в выражениях типа var[number] не нужно, без них работает.

ставить апострофы (или кавычки) нужно.
Читай здесь раздел Why is $foo[bar] wrong?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Массивы и POST
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]