Подскажите, как организовать автозаполнение массива, элементы которого добавлялись бы при каждом обращении к файлу.
Вот к примеру, происходит перебор всех текстовых полей и их значения поочередно передаются в файл php, где нужно сформировать массив данных
Отсюда данные:
function Pusk()
{
var query;
for(j = 0; j < document.top.elements.length; j++)
{
var e = document.top.elements[j];
if (e.type == "text")
{
query ='txt='+encodeURIComponent(document.top.elements[j].value);
Request(query);
}
}
}
Сюда:
session_start();
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
if(isset($_POST['txt']))
{
$_SESSION['norm_quan']=array();
$_SESSION['norm_quan'][]=$_POST['txt'];
}
И вот блин если 2 формы, то данные из 1-ой только заносятся в массив, а второй элемент-нулевой.В чем может быть проблема?
Спустя 13 минут, 48 секунд (5.08.2010 - 17:53) Lenarfate написал(а):
а если так
session_start();
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
if(isset($_POST['txt']))
{
$_SESSION['norm_quan'][$_POST['txt']]
}
Спустя 8 минут, 56 секунд (5.08.2010 - 18:02) Эдик написал(а):
Так не, это не подходит, получиться примерно такое:
и само по себе это никакой информации не несет, тк
$_SESSION['norm_quan'][3]
и само по себе это никакой информации не несет, тк
$_POST['txt']- это цифра в поле, и мне надо, чтоб массив содержал эти цифры из нескольких полей
Спустя 4 часа, 2 минуты, 14 секунд (5.08.2010 - 22:04) Nord написал(а):
Вроде сессии не поддерживают хранение массивов. Можно, например, перед записью в сессии применять serialize к массиву:
А лучше хранить номера в формате типа: 2;3;1;4;6
session_start();
if(isset($_POST['txt'])){
if (isset($_SESSION['norm_quan'] )){
// Массив не пуст => добавить
$array = unserialize($_SESSION['norm_quan']);
$array[] = $_POST['txt'];
$_SESSION['norm_quan'] = serialize($array );
} else $_SESSION['norm_quan'] = serialize(array($_POST['txt'])); // Иначе создать массив
}
А лучше хранить номера в формате типа: 2;3;1;4;6
session_start();
if(isset($_POST['txt'])){
if (isset($_SESSION['norm_quan'] )) $_SESSION['norm_quan'] .= $_POST['txt'];
} else $_SESSION['norm_quan'] = $_POST['txt'];
}
Спустя 9 часов, 50 минут, 4 секунды (6.08.2010 - 07:54) linker написал(а):
Сессии поддерживают хранение массивов! Вот так '2;3;1;4;6' никогда не храни данные.
Как наиболее правильный вариант
Как наиболее правильный вариант
for(j = 0; j < document.top.elements.length; j++)Тогда в PHP скрипте достаточно написать
{
var e = document.top.elements[j];
if (e.type == "text")
query += 'txt=[]' + encodeURIComponent(e.value);
}
Request(query);
$_SESSION['norm_quan'] = $_POST['text'];Для проверки, а что же передается, в условие
if (e.type == "text")вставь
alert(e.value);
Спустя 1 час, 15 минут, 1 секунда (6.08.2010 - 09:09) Nord написал(а):
linker, да, я был не прав
Спустя 11 часов, 17 минут, 46 секунд (6.08.2010 - 20:27) Эдик написал(а):
linker, вот в этой строке вся загвоздка:
Получается вначале:
потом:
query += 'txt=[]' + encodeURIComponent(e.value);
Получается вначале:
query='txt[]=2';
потом:
query='txt[]=2txt[]=3';-И это получается полная ерунда. Вот если бы можно было передать готовый массив..