Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> O jeden element za dużo w tablicy - jak się go pozbyć??
PMadej
post 11.08.2003, 22:33:33
Post #1


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Poniżej zamieszczam kody dwóch skryptów:

pozycje_fv.php
[php:1:528a629295]<?php
//skrypt generuje tabele z produktami i ich ilosciami. sluzy do wybrania
//konkretnych pozycji z tablicy i podania ich ilosci. dane wysyla do
//pozycje_fv2.php ktory to generuje nazwe wybranego za
//pomoca checkboxu produktu i podana w INPUT TEXT ilosc

//utworzenie tabelki z wartosciami z tablicy
print("<table border><tr><td align=center></td>");
print("<td align=center>nazwa</td><td align=center>stawka vat</td><td align=center>");
print("ilosc na<br>magazynie</td><td>Ilość</td></tr>");
print("<form action="pozycje_fv2.php" method="POST">");

//tablica $pozycje jest dwuwymiarowa i zawiera nazwe produktu
//stawke vat dla niego i ilosc. do INPUT TEXT wpisuje sie żądaną ilosc produktu

foreach ($pozycje as $key1=>$value1)
{
//pozycje_wybrane[][0] to identyfikator danego checkboxa
print ("<tr><td align=center><input type="checkbox" name="pozycje_wybrane[][0]" value="$value1[0]"></td>");
foreach ($value1 as $key2=>$value2)
{
print("<td align=center>$value2</td>");
}
//pozycje_wybrane[][1] to identyfikator danego pola input text
print("<td><input type=text NAME=pozycje_wybrane[][1] size=6></td>");
print("</tr>");
}
print("</table>");
print("<input type="submit" value="ZatwierdĄ"></form>");
?>[/php:1:528a629295]

i pozycje_fv2.php
[php:1:528a629295]<?php
//wyswietlenie pozycji wybranych do fv
foreach($pozycje_wybrane as $key=>$value)
{
foreach($value as $key2=>$value2)
{
print("$key2: $value2");
}
print("<br>");
}
print("<a href="pozycje_fv.php">wróć</a>");
?>[/php:1:528a629295]

problem tkwi w tym ze jezeli jest wiecej elementow dostepnych niz wybranych to w kodzie zwroconym przez drugi skrypt mam:

0: pozycja nr 1
1: ilosc (np: 15)
1: <----- to jest index od niezaznaczonego checkboxa i wlasnie jego chce sie pozbyc.

Jezeli zaznacze wszystkie pozycje to sa one w formie:

0: nazwa1
1: ilosc1
0: nazwa2
1: ilosc2
... itd

mnie zaezy natomiast aby z cale tablicy wybrac tylko kilka i wygenerowac taki kod

z gory dzieki za wszelkie podpowiedzi jak rozwiazac ten problem


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
spenalzo
post 11.08.2003, 22:36:42
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Może [manual:b7087d551d]array_pop[/manual:b7087d551d]?


--------------------

Go to the top of the page
+Quote Post
PMadej
post 11.08.2003, 22:43:34
Post #3


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat
Może [manual:737ff8f5f1]array_pop[/manual:737ff8f5f1]?


niestety nie moze to byc bo jesli np mamy 3 elementy to przy zaznaczonych wszystkich jest:

0:nazwa1
1:ilosc1
0:nazwa2
1:ilosc2
0:nazwa3
1:ilosc3

a jezeli zaznaczymy pierwszy i ostatni to mamy:

0:nazwa1
1:ilosc1
1:ilosc2 <--- jezeli nie wpiszemy nic to jest puste a jak wpiszemy cos a nie zaznaczymy checkboxa to pojawi sie tu liczba
0:nazwa3
1:ilosc3

to jakos musi odrzucac niezaznaczone checkboxy

Update (23:45)

albo jakos w pierwszym skrypcie dynamicznie blokowac input text zeby nie dalo sie wpisac wartosci jesli nie jest zaznaczony checkbox (to jako dodatkowe zabezpieczenie przed wrzucaniem błędnych danych


--------------------
Go to the top of the page
+Quote Post
cahe
post 11.08.2003, 22:49:42
Post #4





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

Ostrzeżenie: (0%)
-----


Cytat
albo jakos w pierwszym skrypcie dynamicznie blokowac input text zeby nie dalo sie wpisac wartosci jesli nie jest zaznaczony checkbox (to jako dodatkowe zabezpieczenie przed wrzucaniem błędnych danych


Da się to zrobić bez problemu w javascript.
Go to the top of the page
+Quote Post
PMadej
post 11.08.2003, 22:52:10
Post #5


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


ok co do javascriptu to temat na inne forum

a wiesz moze jak odrzucic elementy z niezaznaczonych checkboxow??
jakas petla to filtrowac??


--------------------
Go to the top of the page
+Quote Post
cahe
post 11.08.2003, 22:57:41
Post #6





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

Ostrzeżenie: (0%)
-----


Cytat
ok co do javascriptu to temat na inne forum

a wiesz moze jak odrzucic elementy z niezaznaczonych checkboxow??
jakas petla to filtrowac??


Może poprostu powiąż w jakiś logiczny sposób checkbox i pole tekstowe (np. poprzez nazwe).
Go to the top of the page
+Quote Post
PMadej
post 12.08.2003, 21:49:13
Post #7


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


przeciez sa te elementy powiazane za pomoca jednej zmiennej $pozycje_wybrane[][];

[php:1:0ab41c2e0d]<?php
//pozycje_wybrane[][0] to identyfikator danego checkboxa
print ("<tr><td align=center><input type="checkbox"
name="pozycje_wybrane[][0]" value="$value1[0]"></td>");
foreach ($value1 as $key2=>$value2)
{
print("<td align=center>$value2</td>");
}
//pozycje_wybrane[][1] to identyfikator danego pola input text
print("<td><input type=text NAME=pozycje_wybrane[][1] size=6></td>");
print("</tr>");

?>[/php:1:0ab41c2e0d]


--------------------
Go to the top of the page
+Quote Post
cahe
post 12.08.2003, 21:50:31
Post #8





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

Ostrzeżenie: (0%)
-----


Cytat
przeciez sa te elementy powiazane za pomoca jednej zmiennej $pozycje_wybrane[][];

[php:1:4e4adb6908]<?php
//pozycje_wybrane[][0] to identyfikator danego checkboxa
print ("<tr><td align=center><input type="checkbox"
name="pozycje_wybrane[][0]" value="$value1[0]"></td>");
foreach ($value1 as $key2=>$value2)
{
print("<td align=center>$value2</td>");
}
//pozycje_wybrane[][1] to identyfikator danego pola input text
print("<td><input type=text NAME=pozycje_wybrane[][1] size=6></td>");
print("</tr>");

?>[/php:1:4e4adb6908]


Więc o co chodzi? Sprawdzasz czy checkbox o tym samym indexie zostal zaznaczony - jesli tak przetwarzasz input.
Go to the top of the page
+Quote Post
PMadej
post 12.08.2003, 22:00:54
Post #9


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


czyli cos w stylu:

[php:1:05ef936d70]<?php
if($pozycje_wybrane[$counter][0] != NULL)
{
//ta lub inna petla
$counter++;
foreach($value as $key2=>$value2)
{
print("$key2: $value2");
}
print("<br>");
}

?>[/php:1:05ef936d70]

Cos takiego miales na mysli?


--------------------
Go to the top of the page
+Quote Post
cahe
post 12.08.2003, 22:10:01
Post #10





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

Ostrzeżenie: (0%)
-----


Cytat
czyli cos w stylu:

[php:1:f31791f424]<?php
if($pozycje_wybrane[$counter][0] != NULL)
{
//ta lub inna petla
$counter++;
foreach($value as $key2=>$value2)
{
print("$key2: $value2");
}
print("<br>");
}

?>[/php:1:f31791f424]

Cos takiego miales na mysli?


Być może... Nie zagłębiałem się w twój skrypt zbytnio. Ale mniejwięcej to.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:51