Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача массивов между скриптами 
:(
    Опции темы
Артем125
  Дата 4.10.2009, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



Post-ом передается целая куча переменных, в том числе и проблемный массив через следующую форму:  smile 

Код

<form id="add" action="xx" method="POST" name="xxx">
<label>кол - во стр.: 
<input name="rows" type="text" size="1" maxlength="2" value="6" />
</label>
<label> кол - во стб.:
<input name="сolumns" type="text" size="1" maxlength="2" value="6" />
</label> &nbsp;
<input type="submit" name="parameter"  value="Задать таблицу">
<p>&nbsp;</p>

<table border="0" cellpadding="0" cellspacing="0"><tr><td><input type="text" name="m00" size="10" maxlength="256" value="1"></td>
<td><input type="text" name="m01" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m02" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m03" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m04" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m05" size="10" maxlength="256" value=""></td>
</tr><tr><td><input type="text" name="10" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m11" size="10" maxlength="256" value=""></td>
<td><input type="text" name="m12" size="10" maxlength="256" value=""></td>
....
<td><input type="text" name="m55" size="10" maxlength="256" value=""></td>
</tr></table>
<p>
  <input type="submit" name="table"  value="Сохранить таблицу">
</p>
</form>


Скрипт который получает эти данные  smile 

Код

if (isset($_POST['parameter'])) { 
            session_start();
            $_SESSION['getSectionsAddTableForm'] = array();
            ...
            $_SESSION['getSectionsAddTableForm']['сolumns'] = $сolumns;
            $_SESSION['getSectionsAddTableForm']['rows'] = $rows;
            $_SESSION['getSectionsAddTableForm']['table']['сolumns'] = array();
            $_SESSION['getSectionsAddTableForm']['table']['сolumns']['rows'] = array();
            // заполнение табличным значением
            for ($i = 0; $i < $сolumns; $i++) {
                for ($j = 0; $j < $rows; $j++) {
                   $_SESSION['getSectionsAddTableForm']['table']['m'.$i][$j] = $_POST[$i][$j];                    
                }            
            }
            header( 'Location: '.$_SERVER['PHP_SELF'].'?action=showSectionsAddTableForm' );
            die();
    }



В ответ на эту команду $_SESSION['getSectionsAddTableForm']['table']['m'.$i][$j] = $_POST[$i][$j]; 
появляется вот это  smile 
Notice: Undefined offset: 0 in t:..index.php on line 1165

Второй момент, как то надо сделать проверку на существование $_POST[$i][$j]

Код

print_r($_POST); Array ( [rows] => 6 [сolumns] => 6 [parameter] => Задать таблицу [m00] => 1 [m01] => [m02] => [m03] => [m04] 
...=> [m55] => [page_id] => 15) 



Это сообщение отредактировал(а) Артем125 - 4.10.2009, 13:11
PM MAIL   Вверх
Артем125
Дата 4.10.2009, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



Разобрался, вопрос был в индексах 

Код

for ($i = 0; $i < $сolumns; $i++) {
                for ($j = 0; $j < $rows; $j++) {
                $nn = 'm'.$i.$j;
                    if (isset($_POST[$nn])) {
                        $_SESSION['getSectionsAddTableForm']['table'][$nn] = $_POST[$nn];
                        
                    }                
                }            
            }


Это сообщение отредактировал(а) Артем125 - 4.10.2009, 13:52
PM MAIL   Вверх
Ипатьев
Дата 4.10.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Код

$_SESSION['post'] = $_POST;

так не проще было написать?
PM MAIL   Вверх
Артем125
Дата 4.10.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



может подскажите волшебную таблетку и для этого кода ?

Код

for ($i = 0; $i < $сolumns; $i++) {
            for ($j = 0; $j < $rows; $j++) {
                $nn = 'm'.$i.$j;
                if (isset($_SESSION['getSectionsAddTableForm']['post'][$nn])) {
                    $m[$nn] = $_SESSION['getSectionsAddTableForm']['post'][$nn];    
                }                
            }            
        }

PM MAIL   Вверх
NewDima
Дата 4.10.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Артем125, странновато вообще формируется смещение, i = 1, j = 11 будет перезаписано i=11, j=1
PM ICQ   Вверх
Артем125
Дата 4.10.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



Задача то какая? Из массива $_SESSION['getSectionsAddTableForm']['post'] вытащить все данные в массив $m

на это
Код

        for ($i = 0; $i < $сolumns; $i++) {
            for ($j = 0; $j < $rows; $j++) {
                $nn = 'm'.$i.$j;
                $m[$nn] = $_SESSION['getSectionsAddTableForm']['post'][$nn];                
            }            
        }


реагирует Notice: Undefined index: m31 in t:...index.php on line 1036

Получается если методом post пересылают пустую ячейку , она не существует?? и тогда, пустой ячейке присваивать NULL

Может есть такая функция, кот. копирует один массив в другой при наличии постоянного символа в ключе? 



Это сообщение отредактировал(а) Артем125 - 4.10.2009, 16:16
PM MAIL   Вверх
Артем125
Дата 4.10.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 2.9.2009

Репутация: нет
Всего: нет



ВСЕ, нашел ошибку. В одном цикле попутал строки со столбцами )))). заработался.)) Всем спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.