Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] - Edycja zmiennych - forumlarz - session POMOCY!
Forum PHP.pl > Forum > Przedszkole
kleszcz12
Witam, powiedzmy że mamy taką podstrone *.php:

  1. <?php
  2. $zmienna1 = 'jakiś text1';
  3. $zmienna2 = 'jakiś text2';
  4. $zmianna3= 'jakiś text3';
  5.  
  6. ?>

Jak zrobić formularz/skrypt który by po wpisaniu w pole zmieniał np jakis text1 na inną treść?
Czy porostu formularz:
  1. <input type="text" name="zmienna1">

tylko co dalej?
sniezny_wilk
nie zapomnij wrzucić tagu <form>
Czyli np.:

  1. <form name="testowy" action="plik.php" method="post">
  2. <input type="text" name="cos">
  3. <input type="submit" value="wyslij">
  4. </form>


plik.php:

  1. <?php
  2. echo $_POST['cos']; //wyświetli wartość z formularza
  3. ?>


Pisane na szybko, powinno działać.
kleszcz12
tak, tylko "form action" ma być ustawione na tą podstronę ze zmiennymi czy coś osobnego co by to zapisywało trzeba robić?
sniezny_wilk
Ma być ustawione na stronę w której odbierasz dane z tablicy $_POST lub $_GET.. zobacz mój przykład.
kleszcz12
aha...ale...bo $_POST... wyświetli wartość formularza, a mi chodzi o to żeby pod np. $zmienna1 = COŚ
to np jak wpiszę do formularza "JAKIŚ TEST", żeby COŚ zostało podmienione i nie wyświetlało się tylko po wypełnieniu formularza ale też gdy ktoś nie wypełniający formularza wejdzie na podstrone to zobaczy JAKIŚ TEXT [bo ktoś wcześniej zmienił COŚ na JAKIŚ TEXT]
sniezny_wilk
Nie bardzo rozumiem, ale zawsze możesz przypisać wartość z formularza do formularza tak:

  1. <?php
  2. echo '<input type="text" name="cos" value="'.$_POST['cos'].'">'
  3. ?>


Lub możesz skorzystać ze zmiennych sesyjnych $_SESSION
kleszcz12
chodzi o coś jak zapis do pliku, tylko tyle inaczej że wartość zmiennej zostanie zmieniona, a nie zapisana...np.

$zmienna1 = 'jakiś text1'

po wpisaniu tekstu w formularzu treść powyżej (pogrubiona) zostaje na stałe zmieniona
sniezny_wilk
Może wyjaśnisz to na konkretnym przypadku ? Lub powiesz co chcesz osiągnąć.
kleszcz12
Plik owoce.php
  1. <?php
  2. $zmienna1 = 'Pomarańcza'
  3. ?>

wchodzę w formularz (formularz_owoce.php)
mam formularz:
  1. <form name="testowy" action="zapisz.php" method="post"> /*? zapisz.php ? osobna podstrona która zmienia wartość zmiennej $zmienna1 z pliku owoce.php*/
  2. <input type="text" name="zmienna1">
  3. <input type="submit" value="wyslij">
  4. </form>

wpisujemy w formularzu Jabłko, klikamy wyslij, i wartość zmiennej z pliku owoce.php z Pomarańcza zostaje zmieniona(zapisana) na Jabłko.
sniezny_wilk
Hmm.. no to zrób na zmiennych sesyjnych

owoce.php

  1. <?php
  2. session_start();//inicjacja sesji, koniecznie na początku każdego plikui
  3. $_SESSION['zmienna1'] = 'Pomarańcza';
  4. echo 'przed: '.$_SESSION['zmienna1'];
  5. ?>


formularz_owoce.php

  1. <?php
  2. /*tutaj też możemy zobaczyć zmienną */
  3. echo 'przed: '.$_SESSION['zmienna1'];
  4.  
  5. <form name="testowy" action="zapisz.php" method="post"> /*? zapisz.php ? osobna podstrona która zmienia wartość zmiennej $zmienna1 z pliku owoce.php*/
  6. <input type="text" name="zmienna1">
  7. <input type="submit" value="wyslij">
  8. </form>
  9. ?>


zapisz.php

  1. <?php
  2. echo 'przed: '.$_SESSION['zmienna1'].'<br>';
  3. $_SESSION['zmienna1'] = $_POST['zmienna1'];
  4. ?>


I teraz wchodząc na owoce.php, inicjujesz zmienną, potem na formularz, zmieniasz (przekieruje Cię na zapisz.php) i teraz po wejściu na owoce.php (odświeżeniu strony), będzie nowa wartość.
kleszcz12
wszystko ok...nie ma błędów....tylko że wartość pozostaje niezmieniona...
sniezny_wilk
Wybacz mój błąd, jak wrócisz na stronę owoce.php, to nadpisze Tobie zmienną znów.. stwórz jakaś stronę na której będziesz wyświetlał tylko $_SESSION['zmienna1'] i na kolejnych etapach działania skryptów zobacz jak się zmienia.
kleszcz12
tzn jak tylko $_session..., otwieram owoce.php -> przechodzę na formularz_owoce -> zapisz.php stworzyć jeszcze jedną podstronę $_SESSION i kiedy na nią wejść ?...
sniezny_wilk
wszystko zależy do czego potrzebujesz tą zmienną, po przejściu przez wszystkie etapy, kiedy odpalisz skrypt w którym znajduje się tylko wyświetlenie tej zmiennej to wtedy zobaczysz zmiane.
Trobin
Może prościej oprzeć to na cookie?
kleszcz12
Cytat(sniezny_wilk @ 7.05.2008, 18:11:46 ) *
wszystko zależy do czego potrzebujesz tą zmienną, po przejściu przez wszystkie etapy, kiedy odpalisz skrypt w którym znajduje się tylko wyświetlenie tej zmiennej to wtedy zobaczysz zmiane.

to tak zrobiłem...ale wartość na "owoce.php" pozostaje bez zmian

jak się da wysli - przechodzi na zapisz.php - i pojawia się tam początkowa treść, jak się odświeży - nowa, ale po przejsciu na owoce.php pozostaje stara treść - czyli tak jakby nie podmieniało.
dawik
zajżyj do mojego tematu masz gotowy skrypt :)haha.gif
kleszcz12
w ostateczności użyje smile.gif thx, jednak wolałbym na sesjach...
dawik
Rozumiem że to jakaś róznica..questionmark.gif;]
kleszcz12
CHodzi o to że przy twoim muszę do każdej podstrony tworzyć osobną podstronę z edycją, a na sesjach się zapisuje...

Cytat(sniezny_wilk @ 7.05.2008, 17:27:37 ) *
Hmm.. no to zrób na zmiennych sesyjnych

owoce.php

  1. <?php
  2. session_start();//inicjacja sesji, koniecznie na początku każdego plikui
  3. $_SESSION['zmienna1'] = 'Pomarańcza';
  4. echo 'przed: '.$_SESSION['zmienna1'];
  5. ?>


formularz_owoce.php

  1. <?php
  2.  
  3. /*tutaj też możemy zobaczyć zmienną */
  4.  
  5.  
  6. echo 'przed: '.$_SESSION['zmienna1'];
  7.  
  8.  
  9. '
  10. <form name="testowy" action="zapisz.php" method="post"> /*? zapisz.php ? osobna podstrona która zmienia wartość zmiennej $zmienna1 z pliku owoce.php*/
  11.  
  12. <input type="text" name="zmienna1">
  13.  
  14. <input type="submit" value="wyslij">
  15.  
  16. </form>'
  17.  
  18. ?>


zapisz.php

  1. <?php
  2. echo 'przed: '.$_SESSION['zmienna1'].'
  3. ';
  4. $_SESSION['zmienna1'] = $_POST['zmienna1'];
  5. ?>


I teraz wchodząc na owoce.php, inicjujesz zmienną, potem na formularz, zmieniasz (przekieruje Cię na zapisz.php) i teraz po wejściu na owoce.php (odświeżeniu strony), będzie nowa wartość.



Cytat(kleszcz12 @ 7.05.2008, 19:57:38 ) *
to tak zrobiłem...ale wartość na "owoce.php" pozostaje bez zmian

jak się da wysli - przechodzi na zapisz.php - i pojawia się tam początkowa treść, jak się odświeży - nowa, ale po przejsciu na owoce.php pozostaje stara treść - czyli tak jakby nie podmieniało.


więc wie ktoś co tutaj może być nie tak...?

nie jest mi nikt w stanie pomóc? sad.gif
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.