Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekazanie zmiennej ze spacjami w srodku HELP!!!!
Forum PHP.pl > Forum > PHP
kambier
Jestem dosc poczatkujacym programista w php i html wiec prosze o wyrozumialosc tongue.gif

Mam problem z przekazaniem zmiennej ktora jest zlozona z kilku wyrazow oddzielonych spacjami. Przy przekazywaniu ich jako input type='hidden' uzywam funkcji urlencode i wszystko dziala. Przy formularzach gdzie wpisuje wartosci w pola input type='text' bez kodowania przekazuje te zmienne dobrze (ze spacjami).
Ale mam problem z nastepujacym kodem:

[php:1:2c2c6bf3a5]<?php
<FORM ACTION='dodaj_sprzedaz.php' METHOD='POST'>

<TABLE BORDER=3 ALIGN=CENTER BGCOLOR=YELLOW>

<TR><TD ALIGN=CENTER> Rodzaj:</TD> <TD ALIGN=CENTER>

<SELECT NAME='rodzaj'>

<?
$query = " SELECT DISTINCT rodzaj
FROM towary order by rodzaj";

$result=MYSQL_QUERY($query);

$number = MYSQL_NUM_ROWS($result);

if($number>0)
{
while($row=mysql_fetch_array($result))
{
echo("<OPTION VALUE = $row[0]> $row[0]");
}
}
?>
</SELECT>

</TD>
<TD ALIGN=CENTER COLSPAN=2><INPUT TYPE='submit' VALUE='Zatwierdz rodzaj'></TD>
<INPUT TYPE='hidden' name='zmniejszenie' value= <?echo $zmniejszenie?> >
</TR>
</TABLE>
</FORM>

?>[/php:1:2c2c6bf3a5]

W zalozeniu ma on dzialac tak, ze wypisuje z tabeli rozne rodzaje towarow, a po wybraniu jakiegos przekazuje go na nastepna stronke. Niestety przekazuje tylko pierwszy wyraz w zmiennej (do pierwszej spacji).

Czy ktos wie jak moge ten problem rozwiazac?
maggot
linia 22:

[php:1:9194ff68a1]<?php
echo("<option value="$row[0]">$row[0]</option>");
?>[/php:1:9194ff68a1]
kambier
maggot napisal:

linia 22:
echo("<option value="$row[0]">$row[0]</option>");



Nie wiem czy sie dobrze wyrazilem w pytaniu tongue.gif
Ten skrypt dziala dobrze. W select wypisuje wszystkie rodzaje z tabeli towary, po czy gdy wybierasz jeden z nich przekazuje go na strone 'dodaj_sprzedaz.php' . Problem w tym ze gdy pod zmienna sa wyrazy oddzielone spacjami to przekazuje tylko pierwszy z nich.

A np. w tym formularzu gdzie jest input type:

Kod
<FORM METHOD='POST' ACTION='zmodyfikuj_towar.php'>

<INPUT TYPE='copy' name='rodzaj' VALUE= '<?echo $rodzaj?>'  SIZE='10' MAXLENGTH='20'>

<INPUT TYPE='submit' VALUE='Modyfikuj'>

</FORM>

Jak przekazuje wartosc rodzaj (zawierajaca spacje) do zmodyfikuj_towar.php wszytko jest spoko. Wypisuje potem zmienna razem ze spacjami.
scanner
Kod
<FORM METHOD="POST" ACTION="zmodyfikuj_towar.php">

<INPUT TYPE="copy" name="rodzaj" VALUE="<?echo $rodzaj?>"  SIZE=10 MAXLENGTH=20>

<INPUT TYPE="submit" VALUE="Modyfikuj">

</FORM>
IMHO w HTMLu stosuje się " a nie '
kambier
Cytat
Kod
<FORM METHOD="POST" ACTION="zmodyfikuj_towar.php">

<INPUT TYPE="copy" name="rodzaj" VALUE="<?echo $rodzaj?>"  SIZE=10 MAXLENGTH=20>

<INPUT TYPE="submit" VALUE="Modyfikuj">

</FORM>
IMHO w HTMLu stosuje się " a nie '



scanner bardzo dziekuje za info, nie wiem jaka jest tylko roznica skoro zarowno" jak i ' dziala mi tak samo. Ale bardziej interesuje mnie odpowiedz na moje pytanie.
scanner
No to chyba już Ci maggot odpowiedział pokazując linię 22...
kambier
:oops: sorry , rzeczywiscie to rozwiazalo problem.
Dzieki za pomoc.
kambier
Jeszcze raz wielkie dzikei za pomoc.

Moze moglibyscie jeszcze zerknac na to. Chcialem tu zweryfikowac poprawnosc wprowadzonej ilosci.
[php:1:6de104ffeb]<?php

//if ((!ereg("[0-9]+.{0,1}[0-9]{0,2}", $ilosc)))
{
echo "Ilosc nie zostala wprowadzona poprawnie.
<br>Format wprowadzenia danych to: 0.00 ";
?>[/php:1:6de104ffeb]

Z tego co wyczytalem to jest tak:
[0-9]+ to co najmniej jedna cyfra od 1 do 9
.{0,1} to symbol kropki wystepuje lub nie
[0-9]{0,2}" od 0 do 2 cyfr po kroce

Niestety ten kod nie dziala.
Gdy wpisze "1" jest ok.
Ale tez pokazuje ze jest ok rowniez gdy wpisze "1a", "1.1111111", "1a.1111" co jest nieprawda
Czy moze wiecie gdzie jest blad w tym ifie?
scanner
[php:1:9bb1e4d6e9]<?php
ereg("^[0-9]{1}(.[0-9]{1,2})?", $ilosc);
// ^[0-9]{1} - string zaczynający się jedną cyfrą
// po którym następują opcjonalnie kropka i jedna lub dwie cyfry
?>[/php:1:9bb1e4d6e9]Powinno działać, ale gwarancji nie daję.
kambier
niestety nie dziala, nawet 1a zatwierdza sad.gif
kambier
znalazlem cos co moze rozwiazac ten problem jezeli kogos by to interesowalo tongue.gif
sa funkcje do sprawdzania typu np.
if(is_float($cena) ==true) echo "dobrze wprowadzona cena";
inne funkcje to is_numeric, is_int, itp.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.