Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: непонятки с массивами через POST
 
 автор: larush   (18.09.2008 в 17:07)   письмо автору
 
 

привет всем. Я понимаю, что торможу, но никак не соображу:
У меня будет большая форма с настройками, хочу обработать все параметры в цикле, не расписывая логику для каждого параметра.


<form action="....." method="post" >
<table ....>
<tr>
    <td width="200">Количество строк в таблицах на экране 
    <td><input type="text"     name="sr[0]['value']" size="2" >
                     <input type= hidden name="sr[0]['name']" value ='cnt_row'>;
...


вижу $_POST['sr'][0]:
Array
(
['value'] => 12
['name'] => cnt_row
)

а вот $_POST['sr'][0]['name']: уже ничего не вижу. Я пробовал и через присвоение новому массиву значения полученного через POST, результат тот же...
Т.е. не могу достучаться до содержания массивов. Написание названия элементов единтичные !

  Ответить  
 
 автор: sim5   (18.09.2008 в 17:26)   письмо автору
 
   для: larush   (18.09.2008 в 17:07)
 

А с чего вы взяли, что у вас должно быть $_POST['sr'][0]['name'] ? Может так:

<input type="text" name="sr['value'][0]" size="2"> 
<input type= hidden name="sr['name'][0]" value ='cnt_row1'>
<input type="text" name="sr['value'][1]" size="2"> 
<input type= hidden name="sr['name'][1]" value ='cnt_row2'>
<input type="text" name="sr['value'][2]" size="2"> 
<input type= hidden name="sr['name'][2]" value ='cnt_row3'>

  Ответить  
 
 автор: larush   (18.09.2008 в 17:36)   письмо автору
 
   для: sim5   (18.09.2008 в 17:26)
 

ну как с чего ?
я создал массив, в котором 1 элемент означет номер контроллируемого элемента, а 2 элемент - параметры. И мой вариант идентичен вашему, где элементы переставлены местами и только.

напоминаю, принимаю и вижу массив, передаваемый через POST

Array
(
[0] => Array
(
['value'] => 11
['name'] => cnt_row
)

[1] => Array
(
['value'] => 2
['name'] => budzh_typ
)

)

что мне надо получить что элемент cnt_row =11, а злемент budzh_typ=2

  Ответить  
 
 автор: xx77   (18.09.2008 в 17:41)   письмо автору
 
   для: larush   (18.09.2008 в 17:07)
 

наверное изза кавычек
<pre><?php
if (isset($_POST['sub'])) {
print_r($_POST);
exit;
}
?>

<form action="?" method="post" > 
<input type="text"     name="sr[0][value]" size="2" value ='01'> 
<input type= hidden name="sr[0][name]" value ='cnt_row'>
        <input type="text"     name="sr[1][value]" size="2" value ='02' > 
        <input type= hidden name="sr[1][name]" value ='cnt_row2'>
        
<input type="submit" name="sub" value=">>>"/>
</form>


попробовал так, всё работает

  Ответить  
 
 автор: larush   (18.09.2008 в 17:46)   письмо автору
 
   для: xx77   (18.09.2008 в 17:41)
 

так и у меня ЭТОТ УРОВЕНЬ показывает
echo "<pre>";print_r($_POST['sr']);
echo "<pre>";print_r($_POST['sr'][0]);

а вот этот уже нет !
echo "<pre>";print_r($_POST['sr'][0]['name']);


echo "<pre>";print_r($_POST['sr']);
результат:

Array
(
    [0] => Array
        (
            ['value'] => 22
            ['old_value'] => 12
            ['name'] => cnt_row
        )

    [1] => Array
        (
            ['value'] => 1
            ['old_value'] => 2
            ['name'] => budzh_typ
        )

)




Array
(
echo "<pre>";print_r($_POST['sr'][0]);
результат:

    ['value'] => 22
    ['old_value'] => 12
    ['name'] => cnt_row
)

  Ответить  
 
 автор: xx77   (18.09.2008 в 18:26)   письмо автору
 
   для: larush   (18.09.2008 в 17:46)
 

интересно почему так.
пробовал четыре уровня вложенности всё работает под виндовз
может это особенности php на разных ОС,
всётаки $_POST получается из строки ,

но попробуйте всё-же без кавычек , у меня без них получается
  [sr] => Array
        (
            [0] => Array
                (
                    [value] => Array
                        (
                            [a] => Array
                                (
                                    [0] => 01
                                )

                            [b] => Array
                                (
                                    [0] => 01
                                    [1] => 01
                                )

                        )

                    [name] => cnt_row
                )

            [1] => Array
                (
                    [value] => 02
                    [name] => cnt_row2
                )

из примерно такого
<input type="text" name="sr[0][value][a][]" size="2" value ='01'>
<input type="text" name="sr[0][value][b][]" size="2" value ='01'>
<input type="text" name="sr[0][value][b][]" size="2" value ='01'>
<input type= hidden name="sr[0][name]" value ='cnt_row'>
<input type="text" name="sr[1][value]" size="2"

  Ответить  
 
 автор: larush   (18.09.2008 в 18:58)   письмо автору
 
   для: xx77   (18.09.2008 в 18:26)
 

УРА !
все верно, убрал кавычки на написании параметров и заработало !!! Спасибо !!!!

            <input type="text" name="sr[0][value]" size="2" >
            <input type=hidden name="sr[0][old_value]" size="2" >
            <input type=hidden name="sr[0][name]" value ='cnt_row'>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования