Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]php przekazywanie zmiennych
canismajoris
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


Witam

Mam taki kod: - problem

  1. <form action=costam.php method=get>
  2. <input type=button value=go></input></form>


wszystko jasne, jak zrobic aby po wcisnieciu button do costam.php przekazywala sie zmienna?

name=zmienna value=$zmienna wiem - ale jak wyzej value jest juz uzyte. jak to połaczyć?

pzdr.,
Go to the top of the page
+Quote Post
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Brakuje Ci atrybutu name w inpucie
  1. <form action="costam.php" method="get">
  2. <input type="button" name="btn" value="go"></input></form>
Go to the top of the page
+Quote Post
jackussa
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

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


jak kolega wyżej napisał atrybut name odpowiada za nazwę zmiennej.

Nadając np name="zm1", name="zm2" aby się do nich odnieść uzywasz $_GET['zm1'], $_GET['zm2]
Go to the top of the page
+Quote Post
canismajoris
post
Post #4





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


no tak ale kazda zmienna : name1 lub name2 ma atrybuty value.


jak odwolac sie do konkretnej zmiennej? w jednym ciagu input.

<input type=button name=przycisk value="go" > (jako jedna zmienna, ale chiallbym aby po wcisnieciu poleciala zmianna druga do drugiego pliku - a nie chce aby nazywala sie jak przycisk... czyli name2 value2 jak to zapisac?


oraz drugie pytanie mam ciag kodu:

$dane=$_GET['plik.txt'];

echo "dane $adres zostały zapisane!<br />";
echo "<form method='link' action=$adres.php><input type='submit' value='go>";

dalaczego php czyta mi zmienna z pierwszej linijki a nie czyta z drugiej?(IMG:style_emoticons/default/questionmark.gif)



}


Go to the top of the page
+Quote Post
jackussa
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

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


hmmm, może łopatologicznie

name - nazwa zmiennej w tablicy GET, czyli jak input ma atrybut name np. 'zmienna1' odowłujesz się do niego w php za pomocą indeksu czyli $_GET['zmienna1'].

value - jest to wartość atrybutu któremu nadałeś name. Załóżmy że masz inputa o typie text i atrybucie name='zmienna1', jeśli wpiszesz do pola np. 'ABCD' a następnie naciśniesz submit. Twoja zmienna $_GET['zmienna1'] będzie miała wartość 'ABCD', albo jak wolisz $_GET = array( 'zmienna1' => 'ABCD' )

Uważąm że powinieneś poczytać trochę o fomularzach, ponieważ uważam że błądzisz po omacku
Go to the top of the page
+Quote Post
canismajoris
post
Post #6





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


<form action=test.php method=get>
<input type=button value=go>
<input type=hidden name=zmienna value=kolor></form>

odbieram $_GET['zmienna']

o to mi chodzilo i dzala (IMG:style_emoticons/default/smile.gif)

jeszcze tylko jakby ktos moglby rzucic okiem

$adres=$_GET['zmienna']
echo "dane $adres zostały zapisane!<br />";
echo "<form method='link' action=$adres.php><input type='submit' value='go>";

dalaczego php czyta mi zmienna z pierwszej linijki a nie czyta z drugiej?

Go to the top of the page
+Quote Post
h3xed
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 7
Dołączył: 30.01.2012

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


  1. echo "dane ".$adres." zostały zapisane!<br />";
  2. echo "<form method='link' action=".$adres.".php><input type='submit' value='go>";


Ten post edytował h3xed 31.01.2012, 15:31:13
Go to the top of the page
+Quote Post
canismajoris
post
Post #8





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


nie działa url .php no found - w ogole nie odczytuje zmiennej jak zmiennej czy jako tekstu
Go to the top of the page
+Quote Post
jackussa
post
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 2.09.2010

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


po pierwsze dawaj cudzysłowia, bo twój kod jest błędny, czyli

  1. <form action="test.php" method="get">
  2. <input type="button" value="go">
  3. <input type="hidden" name="zmienna" value="kolor">
  4. </form>


Nie do końca rozumiem o co ci chodzi z tym drugim.

Zakładam że wysyłasz pierwszy formularz, a następnie go odbierasz i w ten sposób masz

$adres=$_GET['zmienna']
echo "dane $adres zostały zapisane!<br />";
echo "<form method='link' action='$adres.php'><input type='submit' value='go'>";

wyświetli "dane kolor zostały zapisane!" i pojawi się przycisk go.
Nie ma czegoś takiego jak method="link", jest tylko GET i POST. GET słuzy do przekazywania zmiennych przy uzyciu URL'a i POST jest niewidoczne dla użytkownika.

Być może nie pobierasz wszystkich zmiennych z poprzedniego formularza. Pamiętaj że $_GET to tablica, i jesli chcesz się odnosić do innych zmiennych musisz w indeksie tablicy $_GET dodać inny indeks (w twoim przypadku będzie to inny name który wpisałeś w formularzu).

Załóżmy że masz formularz

  1. <form action="test.php" method="get">
  2. <input type="button" value="go">
  3. <input type="hidden" name="zmienna" value="zielony">
  4. <input type="hidden" name="zmienna2" value="różowy">
  5. </form>


To aby wyświetlić te zmienne musisz podac je obie, czyli

  1. echo "Najładniejszy kolor to ".$_GET['zmienna]." natomiast najbrzydszy to ".$_GET['zmienna2'];

mie
I otrzymasz "Najładniejszy kolor to zielony natomiast najbrzydszy to różowy"

Cytat(canismajoris @ 31.01.2012, 15:40:32 ) *
nie działa url .php no found - w ogole nie odczytuje zmiennej jak zmiennej czy jako tekstu


Jeżeli wywołujesz strone bezpośrednio, $adres będzie pusty i powinien Ci się wywalić. Możliwe tez że watrość zmienna w poprzednim formularzu jest pusta, ponieważ otrzymujesz pusty string
Go to the top of the page
+Quote Post
h3xed
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 7
Dołączył: 30.01.2012

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


Bo zrobiłeś więcej błędów niż się dało.

jeżeli zmienna jest wewnątrz cudzysłowów to wyświetla się jako tekst. Aby poprawnie ją wyświetlić musisz 'otoczyć' ją tymi samymi cudzysłowami oraz kropkami, np.

  1. echo 'To jest zmienna '.$x.'';
  2. echo "To jest zmienna ".$x.""


  1. echo 'dane '.$adres.' zostały zapisane!<br />';
  2. echo '<form method="link" action="'.$adres.'.php">
  3. <input type="submit" value="go">';


A tak na marginesie, co to za metoda "link" ?
Go to the top of the page
+Quote Post
mortus
post
Post #11





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(h3xed @ 31.01.2012, 15:46:02 ) *
Bo zrobiłeś więcej błędów niż się dało.

jeżeli zmienna jest wewnątrz cudzysłowów to wyświetla się jako tekst. Aby poprawnie ją wyświetlić musisz 'otoczyć' ją tymi samymi cudzysłowami oraz kropkami, np.

  1. echo 'To jest zmienna '.$x.'';
  2. echo "To jest zmienna ".$x.""


Nieprawda. Apostrofy to nie cudzysłowy. Kropkami trzeba łączyć (konkatenować) łańcuchy znaków objęte apostrofami. Przy łańcuchach znaków objętych cudzysłowami nie trzeba używać konkatenacji, ale należy stosować się do pewnych reguł określonych w manualu.

Niemniej kolega chyba naprowadził na rozwiązanie, tylko upewnij się, że masz plik kolor.php, czy jaki tam sobie generujesz poprzez konkatenację $zmienna . '.php'.

Ten post edytował mortus 31.01.2012, 15:56:41
Go to the top of the page
+Quote Post
canismajoris
post
Post #12





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


ok przepraszam bo z palca pisze i nie wszystko pewnie się znalazło w kodzie;

teraz wszystko dokładnie pełny kod:

  1. ech '<FORM name="input" action="plik1.php" method="GET"><input type="hidden" name="kolor" value="$tekst"><INPUT type="submit" value="dodaj></form>';


wiec to cos po wcisnieiu przycisku dodaj wysyla mi zmienna kolor do pliku pli1.php

teraz dalej : plik1.php

  1. $dane=$_GET['kolor']
  2. echo "Dane dla urządzenia $dane zostały zapisane!<br />";
  3. echo "<form action=".$dane.".php><input type='submit' value='go>";


method link juz wywalilem, nie wiem co ja chcialem z tym zrobic (IMG:style_emoticons/default/smile.gif)
ale do rzeczy za $dane z pierwszej linijki podstawia mi kolor
ale za dane z drugiej linijki już nie. albo w błędzie wywali ze nie ma takiego pliku php , albo jak zmienie quota to po prostu wysietli mi ze $dne.php nie istnieje.
jak to zapisac w drugiej linijce aby mi podstawil z zmianna tekst
Go to the top of the page
+Quote Post
mortus
post
Post #13





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Przecież podstawia, bo później, jak próbujesz zatwierdzić formularz, to w przeglądarce otrzymujesz informację, że strona nie istnieje. Zastanów się kolego, co Ty w ogóle chcesz zrobić, bo chyba sam nie wiesz.

Ten post edytował mortus 31.01.2012, 16:15:25
Go to the top of the page
+Quote Post
canismajoris
post
Post #14





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

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


no włanie nie podstawia.
nie działa mi tylko ta jedna linijka cała reszta w pliku plik1.php funkcjonuje na podstawie zmiennej $dane z pierwszgo formularza.
jak dojdę do błędu to napiszę.
dzieki wszystkim i pozdrawiam.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 7.10.2025 - 10:23