Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]php przekazywanie zmiennych
Forum PHP.pl > Forum > Przedszkole
canismajoris
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.,
skowron-line
Brakuje Ci atrybutu name w inpucie
  1. <form action="costam.php" method="get">
  2. <input type="button" name="btn" value="go"></input></form>
jackussa
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]
canismajoris
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?questionmark.gif



}


jackussa
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
canismajoris
<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 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?

h3xed
  1. echo "dane ".$adres." zostały zapisane!<br />";
  2. echo "<form method='link' action=".$adres.".php><input type='submit' value='go>";
canismajoris
nie działa url .php no found - w ogole nie odczytuje zmiennej jak zmiennej czy jako tekstu
jackussa
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
h3xed
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" ?
mortus
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'.
canismajoris
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 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
mortus
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.
canismajoris
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.
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.