Автор Тема: PHP: Вкарване на име на поле в масив  (Прочетена 3611 пъти)

Regia

  • Напреднали
  • *****
  • Публикации: 293
  • Distribution: Tilix
  • Window Manager: KDE
    • Профил
    • WWW
Имам следното нещо, което показва таблица, на базата на масив. В генерирания код, това input name='r".$i."c".$j."' излиза като name='r2c7', примерно. Въпросът ми е как този цикъл да създаде масив със стойностите за name, т.е. да мога да се обърна към новия масив на по-късен етап след изпращането на формата, и в този масив (тримерен най-добре) да има номера на реда, колоната и какво е въведено като трета опция.
Благодаря предварително на всички, които биха изявили желание да помогнат по този проблем.

Примерен код
echo ("<tr>");
      for ($j = 0; $j < strlen($cwtext[$i]); $j++) {
         echo ("<td><input name='r".$i."c".$j."' type=\"text\" size=\"1\" maxlength=\"1\" /></td>");
         }
      echo ("</tr>");


И след изпращането на формата да може да се види какво е въвел потребителя в ред 3 от 4-та колона, примерно, благодарение на този масив.
Активен

Emooo

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #1 -: Jul 15, 2005, 20:51 »
Аз не разбрах кво питаш
Активен

Regia

  • Напреднали
  • *****
  • Публикации: 293
  • Distribution: Tilix
  • Window Manager: KDE
    • Профил
    • WWW
PHP: Вкарване на име на поле в масив
« Отговор #2 -: Jul 15, 2005, 21:22 »
Цикълът създава различни имена за input name=. Как да се създава и по същото време двумерен масив, който да съдържа номерата (координатите) на всички полета.

В генерирания HTML код има:
<input name='r0c0
<input name='r0c1
<input name='r0c2
<input name='r1c0

Как цикълът да създава след изпращането на формата тримерен масив, който да съдържа номерата от r и c, и съдържанието на полето.

Ако пак не се разбира: как мога в друг скрипт да проверя (да сравня с друг стринг) съдържанието на формата от горния код?
Активен

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #3 -: Jul 15, 2005, 23:28 »
аз лично нищо не разбрах '<img'> ама пиша за друго бреи аз до ся Php код почти не бях виждал ама то кат махнем $ напрао C/C++ си става '<img'>
Активен

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #4 -: Jul 15, 2005, 23:32 »
не че нещо ама къв е проблема да създадеш един масив с елемнти колкото е броя на колоните в таблицата ? сигурно е нещо катo
int $masiv[10][2]; // primerno ako sa 10 kolonite v tablicata
 и после да записваш саответно :
for ($j = 0; $j < strlen($cwtext[$i]); $j++) {
echo ("<td><input name='r".$i."c".$j."' type=\"text\" size=\"1\" maxlength=\"1\" /></td>");
$masiv
  • =$i;
$masiv[1]=$j;
}
p.s. нямам идея от Php '<img'> ama що не се напраи нещо подобно ша имаш такъл масив с 2 полета саответно за I / J и в него ша пъхаш сяка колона от таблицата кво I и J има .
Активен

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #5 -: Jul 15, 2005, 23:35 »
бтв една вметка... недеи да пишеш цикли като
for ($j = 0; $j < strlen($cwtext[$i]); $j++) {

не че нещо ама тва на секи пас ша вика функцията стрлен която ще преброява символите в масива.. което е супер супер лагнато ако имаш масив с 20000 елемента ин а секи пас тая функция преброява колко са елементите на масива. Аз бих си го написал :
$size = strlen($cwtext[$i]); //маи няма типове нали ? :+)
for ($j = 0; $j < $size;$j++) {
Активен

JOKe

  • Напреднали
  • *****
  • Публикации: 537
    • Профил
PHP: Вкарване на име на поле в масив
« Отговор #6 -: Jul 15, 2005, 23:40 »
aa деиба прост съм
$masiv
  • =$i;
$masiv[1]=$j;
тва маи трииа да е
$masiv[$i][0]=$i;
$masiv[$i][1]=$j;
забраих доларите как моа да забраа доларите .. баси на секи долари са му в главата само на мен не '<img'>
Активен

" May The Source Be With You . "

Emooo

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #7 -: Jul 15, 2005, 23:53 »
мисля че проблема не му е с масива тва е елементарно ако правилно разбирам не може да подаде даните на друга страница. Начи с POST не можеш да подаваш масив. Трябва да намериш начин от имената на едит бохите да извлечеш масива във следващата страница като правиш проверки със isset($r0c1); и така ако isset върне 0 начи.... начи е ясно кво е.... Другия начин е да направиш един масив записан в стринг
нещо от рода

$r0c1;<edi kvo si>;r0c2 и го подаваш по стандартния начин i t.n. no kato gledam ne si naprednal i ste ti e trudno taka che..... mai nai dobre e da prochetesh malko predi da pishesh code.

П.С.
ех мамка му и долари и аз много ги мразя
Активен

VladSun

  • Moderator
  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
PHP: Вкарване на име на поле в масив
« Отговор #8 -: Jul 16, 2005, 01:19 »
Blue, честно казано вече настъпи момента да седнеш да попрочетеш малко, да попишеш малко код и т.н. Няма да можем да те научим на програмиране колкото и голямао да ни е желанието '<img'>

Не възприемай поста насочен лично срещу тебе, просто знам, че с такива обяснения няма да стане ...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

JOKe

  • Напреднали
  • *****
  • Публикации: 537
    • Профил
PHP: Вкарване на име на поле в масив
« Отговор #9 -: Jul 16, 2005, 10:50 »
във JSP има scope-oве.. различни например
request -тва е до другата страница
session - тва е за цялата сесия на броусера
application - тва е за целия саит
page - нивга не сам го ползвал..


та закво служат прави се нещо такова :
int masiva[]={100,200,300,50,100,200,300,200,100};
// da kajem
session.setAttribute("masivaMiMaina",masiva);
после в сяка друга страница може да си го извлека с
session.getAttribute("masivaMiMaina");
в тва ПХП няма ли такоа нещо примерно session-а аз си го ползвам за логин/ усернаме и парола и ако има усернаме примерно ключ "UserName" начи оня се е логнал и му пускам страницата деа знам тва е супер удобно неможе да няма в ПХП такоа нещо
Активен

" May The Source Be With You . "

Emooo

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #10 -: Jul 16, 2005, 13:10 »
да със session ще стане
Активен

Regia

  • Напреднали
  • *****
  • Публикации: 293
  • Distribution: Tilix
  • Window Manager: KDE
    • Профил
    • WWW
PHP: Вкарване на име на поле в масив
« Отговор #11 -: Jul 16, 2005, 15:39 »
Благодаря ви за идеите, ще ги пробвам и ако стане - стане, ако не ще отворя официалния PHP Manual.  '<img'>
Активен

toxigen

  • Напреднали
  • *****
  • Публикации: 243
    • Профил
PHP: Вкарване на име на поле в масив
« Отговор #12 -: Jul 18, 2005, 10:11 »
Примерен код

session_start();
$_SESSION['formdata'][$i][$j]=$value;


където $value е стойността на съответното поле. В следващата страница става така:
Примерен код

session_start();
if(isset($_SESSION['formdata'][$i][$j]))
{
   $value=$_SESSION['formdata'][$i][$j];
}
else
{
   $value='';
}

Може и така за по-кратко:
Примерен код

$value=(isset($_SESSION['formdata'][$i][$j]))?($_SESSION['formdata'][$i][$j]):('');


Преди всичко естествено трябва да си сетнал $i и $j. Имай впредвид, че session_start() трябва винаги да е първото (или поне преди всичко, което извежда съдържание!'<img'> нещо в скрипта на страницата.

Ще имаш да черпиш '<img'>
Активен

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #13 -: Jul 18, 2005, 11:41 »
Доколкото си спомням за да се работи със сесията session_start()  не е нужно да се извиква, достатъчно е да се пипне $_SESSION. Това не важи за $HTTP_SESSION_VARS. Преди някой се беше изказал за скоупове в АСП/ДжСП. В PHP това са суперглобалните променливи $_GET/$_POST/$_REQUEST(get, post, cookie, files)/$_COOKIE/$_FILES

другa суперглобалнa променлива е $_SERVER, но тя е само за четене. В общия случай не е нужно да се извикват никакви функции за работа със сесия, просто се работи със $_SESSION, но понякога, когато има фреймове страницата е препоръчително, да се отвори набързо да се направи промяната каквато трябва и сесията да се затвори експлицитно, а не да се чака края на скрипта за да се затвори сесията.
Активен

  • Гост
PHP: Вкарване на име на поле в масив
« Отговор #14 -: Jul 18, 2005, 11:46 »
session_start() трябва да е първото, но само на страницата, където се отваря сесията (обикновенно при верификация на име и парола). Това идва от факта, че бисквитката, която пази идентификатора на сесията се няма да може да бъде изпратена иначе. Но и за това има решение за хакване на вече съществуващи скриптове - буфериране на изхода с ob_xxx() фунцкиите ob_start() .... session_start() ..ob_end_flush()
Активен