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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с массивами 
V
    Опции темы
Allexander
Дата 16.1.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
я в вэб и пхп новичек . в универе задали задание сделать форму заказа средствами php. Тоесть в окне отображаются поля и кнопка добавить, если поля заполнены то жмем добавить и иформация должна отобразиться ниже в таблице. 
делаю так.
Код

<?php
require "zayavka.php";
$mass[]=$_POST['num'];
$mass[]=$_POST['idn'];
$mass[]=$_POST['name'];
$mass[]=$_POST['kol'];
$mass[]=$_POST['cen'];
$mass[]=$_POST['summ'];
$mass1[]=$mass;

?>
    <table cellpadding="0" cellspacing="0" border="0" >
    </table><br>
    <table width=100% class=bodytable border=1 align=center cellpadding=6 cellspacing=0 bordercolorlight=gray bordercolordark=white>
      <tr class=tableheadercat align="center">
        <td width=60><p class=zagtable>№ п\п</p></td>
        <td width=300><p class=zagtable>IDN</p></td>
        <td width=40><p class=zagtable><nobr>Наименование товара</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Кол-во(шт.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Цена(руб.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Сумма</nobr></p></td>
        <td width=40><p class=zagtable>Действия</p></td>
      </tr>
    <?php
  for($i=0;$i<count($mass1);$i++)
    {
    echo "<tr>";
        for($j=0;$j<count($mass);$j++)
        {
          echo "<td><p class=help align=center>".$mass[$j]."</p></td>";       
        }
    echo "</tr>";
    }
    echo "</table>";
?>

Но при попытки добавить новые данные, старые удаляются.
Подскажите плз как сделать так чтобы массив хранил данные после обновления страницы. Читал про $_SESSION но так и не понял как это можно применить  к массивам.

PM MAIL   Вверх
pizzz
Дата 16.1.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

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



Да без разницы к чему их пременять, сессион по сути сам массив, который живет и не умирает даже между запусками скрипта!!

В итоге вначало добавляем:

Код

session_start();


Сохраняем что надо сохранить так:

Код

$_SESSION['mass1']=$mass1;


и вуаля, теперь по $_SESSION['mass1'] у нас есть массив который сохраняеться.

У вас возникнет ошибка, лучше так:

if(isset($_POST['summ'])) $mass[]=$_POST['summ'];

Добавлено через 10 минут и 7 секунд
Так уж и быть воТ код:

Код

<?php
session_start();
if (isset($_SESSION['mass1'])) $mass1 = $_SESSION['mass1'];

require "zayavka.php";

if(isset($_POST['num'])) $mass[] = $_POST['num']; // и так далее
$mass[]   = $_POST['idn'];
$mass[]   = $_POST['name'];
$mass[]   = $_POST['kol'];
$mass[]   = $_POST['cen'];
$mass[]   = $_POST['summ'];
$mass1[] = $mass;


?>
    <table cellpadding="0" cellspacing="0" border="0" >
    </table><br>
    <table width=100% class=bodytable border=1 align=center cellpadding=6 cellspacing=0 bordercolorlight=gray bordercolordark=white>
      <tr class=tableheadercat align="center">
        <td width=60><p class=zagtable>№ п\п</p></td>
        <td width=300><p class=zagtable>IDN</p></td>
        <td width=40><p class=zagtable><nobr>Наименование товара</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Кол-во(шт.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Цена(руб.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Сумма</nobr></p></td>
        <td width=40><p class=zagtable>Действия</p></td>
      </tr>
    <?php
  for($i=0;$i<count($mass1);$i++)
    {
    echo "<tr>";
        for($j=0;$j<count($mass);$j++)
        {
          echo "<td><p class=help align=center>".$mass[$j]."</p></td>";       
        }
    echo "</tr>";
    }
    echo "</table>";
$_SESSION['mass1'] = $mass1
?>

--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
Allexander
  Дата 16.1.2009, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 Вы сам добрата, благодарю хватило и первого поста. smile
PM MAIL   Вверх
pizzz
Дата 16.1.2009, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

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



Да ладно, мне не жалко) Приходите, задавайте вопросы еще)  smile Вопрос пометьте тока как решеный
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
Allexander
Дата 21.1.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Решил не открывть новой ветки, а продолжить эту. столкнулся со следующей непоняткой. Добавили задание доработть возможность удаления внесенных данных, поэкспеементировав пришел к такому коду 
Код

<?php
session_start();

if (isset($_SESSION['mass1'])) $mass1 = $_SESSION['mass1'];
require "zayavka.php";
$mass="";
if(isset($_POST['num'])) $mass[]=$_POST['num']; 
if(isset($_POST['idn'])) $mass[]=$_POST['idn']; 
if(isset($_POST['name'])) $mass[]=$_POST['name']; 
if(isset($_POST['kol'])) $mass[]=$_POST['kol']; 
if(isset($_POST['cen'])) $mass[]=$_POST['cen']; 
if(isset($_POST['summ'])) $mass[]=$_POST['summ']; 
$dell=count($mass1);
$mass[]="<a href=addzayvka.php?id=".$dell." title='Удалить'>Удалить</a>";
if(isset($_GET['id'])) unset($mass1[$_GET['id']]);
if(isset($mass))$mass1[]=$mass;

?>
     <table cellpadding="0" cellspacing="0" border="0" >
    </table><br>
    <table width=100% class=bodytable border=1 align=center cellpadding=6 cellspacing=0 bordercolorlight=gray bordercolordark=white>
      <tr class=tableheadercat align="center">
        <td width=60><p class=zagtable>№ п\п</p></td>
        <td width=300><p class=zagtable>IDN</p></td>
        <td width=40><p class=zagtable><nobr>Наименование товара</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Кол-во(шт.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Цена(руб.)</nobr></p></td>
        <td width=40><p class=zagtable><nobr>Сумма</nobr></p></td>
        <td width=40><p class=zagtable>Действия</p></td>
      </tr>
     <?php
     echo count($mass);
  for($i=0;$i<count($mass1);$i++)
    {
    echo "<tr>";
        for($j=0;$j<7;$j++)
        {
          echo "<td><p align=center>".$mass1[$i][$j]."</p></td>";       
        }
    echo "</tr>";
    }
    echo "</table>";
    
$_SESSION['mass1'] = $mass1
?>
вроде все нормально удаляет но есть но, если после удаления внести еще данные выводит какуюто фигню. ума не приложу как это побороть.
И еще один момент как это добро можно отправить на заданое мыло. Чтоб получателю приходил список как выводится в окне. тоесть в таблице.

PM MAIL   Вверх
pizzz
Дата 22.1.2009, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

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



выводит какуюто фигню

А нам посмотреть можно?

отправить на заданое мыло
mail() вам поможет
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
Allexander
Дата 22.1.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Конечно можно smile
вот последовтельность действий
1) заполняем поля и жмем кнопку добавить. (повторить пункт 1 два - три раза)
2) жмем кнопку удалить любого из полей, все вроде красиво отработало и отобразило.
3)заполняем поля и жмем кнопку добавить, вот тут и выходит фигня данные не отображаются а выводится только ссылка удалить, причем id элемента на удаление верно.
4)опять заполняем поля жмем кнопочку и опа на отображается инфа которая была введена ранее, а новая нет 
И так по кругу
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.0602 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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