Можно посылать массивы через: input type="hidden" ?

flash_os

Новичок
Можно посылать массивы через: input type="hidden" ?

Можно посылать массивы через input type="hidden"?

Код:
<html>
    <body>
        <?php
              $dice[1] =$_REQUEST["dice[1]"];
        ?>
...

        <form>
            <input type="hidden" name="dice[1]" value="$dice[1]" />
            <input type="submit" value="Send" />
        </form>
 
    </body>
</html>
У меня не получилось. :(
 

Beavis

Banned
да? а что выведет код
PHP:
var_dump($_REQUEST["dice"]);
в скрипте, который принимает данные?
 

flash_os

Новичок
Прочитал и не чего.

Вот полный код:
Код:
<html>
    <head><title></title></head>
    <body>
        <?php
              $dice[1] =$_REQUEST["dice[1]"];
       
if (empty($dice[1])) {
    $dice[1]=666;
    print $dice[1];}
else {print "dice[1] is filled";}

 ?>
<form action="">
            <input type="hidden" name="dice[1]" value="$dice[1]" />
            <input type="submit" value="Send" />
        </form>

    </body>
</html>
 

Beavis

Banned
Автор оригинала: flash_os
array(1) { [1]=> string(8) "$dice[1]" }
ну, всё правильно, а ты говоришь не получается

что отправляется в форме - то и выводится (посмотри HTML-код формы)
 

MVH

Новичок
flash_os, надо вот так:
Код:
[PHP]$dice[1] =$_REQUEST['dice']['1'];[/PHP]
а не так:
Код:
[PHP]$dice[1] =$_REQUEST["dice[1]"];[/PHP]
Если имя поля cодержит [], то PHP это всё в массив прекращает соответствующим образом.

И вот так не правильно:
Код:
[PHP]<input type="hidden" name="dice[1]" value="$dice[1]" />[/PHP]
надо так:
Код:
[PHP]<input type="hidden" name="dice[1]" value="<?=$dice[1]?>" />[/PHP]
или или вот так:
Код:
[PHP]<input type="hidden" name="dice[1]" value="<?php print $dice[1];?>" />[/PHP]
 

flash_os

Новичок
Cпасибо.

Почему не правильно?
Ведь работает:
Код:
<input type="hidden" name="dice[1]" value="$dice[1]" />
 

MVH

Новичок
Автор оригинала: flash_os
Cпасибо.

Почему не правильно?
Ведь работает:
Код:
<input type="hidden" name="dice[1]" value="$dice[1]" />
Потому, что неправильно работает. После отправки формы PHP скрипт получит переменную $_REQUEST['dice'][1] == '$dice[1]', т.е. такой строке, а не содержимое переменной $dice[1]. Всё это потому, что php не обработает эту строку: <input type="hidden" name="dice[1]" value="$dice[1]" />, т.к. в ней нет php кода (текста заключённого в <?php ... ?> или <?= ... ?>). Вам надо хотя бы основы PHP почитать.
 

flash_os

Новичок
Ты хочешь сказать что
Код:
<input type="hidden" name="dice[1]" value="$dice[1]" />
не передаёт не чего, а тот кто передаёт данные это:
Код:
$dice[1] =$_REQUEST['dice']['1'];
?
 

Beavis

Banned
после этого вопроса помоему стоит закрыть тему...
тушите свет)
 

MVH

Новичок
flash_os
Форма отправляет данные, PHP принимает их. Если форма была отправлена, то переменные (точнее значения полей), заданные в форме появятся в массиве $_REQUEST. Но PHP не только данные от формы принимает, поэтому до отправки формы в Вашей форме он может вывести содержимое переменной, как я Вам показал.
На этом всё, послушаюсь совета Beavis'а.
 

flash_os

Новичок
Ну что вы все кипятитесь?!
Спасибо понял, просто раньше в книге писали примеры в стиле: <input type="hidden" name="dice" value="dice" /> вот и вбилось у меня эта чушь в голову.
 

Фанат

oncle terrible
Команда форума
Не надо ля-ля. Нету тут никакой агрессивности.
И кипятится тут ровно один человек - автор.

-~{}~ 17.08.09 17:36:

вот и вбилось у меня эта чушь в голову.
это не чушь. это абсолютно нормальный пример.
а вот кое-кто не понимает, чем отличается html от php
 

MVH

Новичок
*****, кстати да, какая ещё агрессивность? Перечитав тему беру свои слова обратно.

-~{}~ 18.08.09 11:58:

P.S.: а к фанату по нику обращаться запрещено что ли!? =)
 
Сверху