Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podmiana tekstów za zmienne - problem
Forum PHP.pl > Forum > Przedszkole
sliwa007
Witam,

Mam takie pytanie. Chce zrobić coś takiego że wpisuje jakieś dane do pól opis, kontakt, wysylka, platnosci i w polu kod wpisuje np zmienne $kontakt, $wysylka, $platnosci i chce żeby po nacisnieciu przycisku submit wyświetliła się zawartość pola kod, ale żeby te zmienne wpisane w textarea były już przetworzone na teksty znajdujące się w inputach powyżej którym odpowiadają te zmienne.
Próbowałem to zrobić w ten sposób, ale po wciśnieciu wyslij wyświetla mi się nazwa zmiennej a nie jej wartosć, bardzo proszę o pomoc:

  1. <?php
  2.  
  3. $opis = trim($_POST['opis']);
  4. $kontakt = trim($_POST['kontakt']);
  5. $wysylka = trim($_POST['wysylka']);
  6. $platnosc = trim($_POST['platnosc']);
  7.  
  8. $kod = trim($_POST['kod']);
  9.  
  10. if(empty($opis) || empty($kontakt) || empty($wysylka) || empty($platnosc)) {
  11.  
  12. echo "<form action=\"\" method=\"post\">";
  13.  
  14. echo "Opis przedmiotu <textarea cols=\"40\" rows=\"3\" name=\"opis\"></textarea><br>";
  15. echo "Kontakt <textarea cols=\"40\" rows=\"3\" name=\"kontakt\"></textarea><br>";
  16. echo "Wysyłka <textarea cols=\"40\" rows=\"3\" name=\"wysylka\"></textarea><br>";
  17. echo "Płatność <textarea cols=\"40\" rows=\"3\" name=\"platnosc\"></textarea><br>";
  18. echo "Kod <textarea cols=\"40\" rows=\"3\" name=\"kod\"></textarea><br>";
  19. echo "<input type=\"submit\" value=\"wyslij\">";
  20. echo "</form>";
  21. }
  22. else {
  23. echo "$kod";
  24. }
  25. ?>


plik jest wgrany na http://resproject.pl/ts.php

Nie wiem czy nie zagmatwalem troche tego jeśli tak serdecznie przepraszam, i bardzo proszę o pomoc.

Pozdrawiam
piotrooo89
yyy nie wiem czy o to chodzi:

  1. echo "Opis przedmiotu <textarea cols=\"40\" rows=\"3\" name=\"opis\">".$opis."</textarea><br>";

askone
Hej

Może o to Ci chodzi:
  1. $kod = $_POST['kod'];
  2.  
  3. $opis = $_POST[$kod];


edit:
Oczywiście jeśli w polu kod masz kilka nazw zmiennych to wpierw rozbij je na tablicę stosując explode. Później robisz foreach po wszystkich elementach tej tablicy i sklejasz do zmiennej $opis

  1. $kod = $_POST['kod'];
  2.  
  3. foreach(explode(' ', $kod) as $row => $value)
  4. {
  5. $opis .= $_POST[$value];
  6. }


Pisane z palca, więc mogą być błędy smile.gif
Pozdrawiam
sliwa007
nie. Wejdzcie sobie na http://resproject.pl/ts.pl i wypełnijcie formularz w ten sposob:

opis przedmiotu: ble ble opis
kontakt : ble ble kontakt
wysylka: bleble wysylka
platnosci: bleble platnosci
kod: $wysylka

i po kliknieciu na wyslij pojawia się teskt $wysylka, a chce żeby się pojawiał "bleble wysylka", bo w to pole bede wstawial kod html i chce abz te ymienne sie podmienialz np wkleje kod <div="wysylka">$wysylka</div> i chce zeby mi się tam pojawily teksty które będą wpisane w tekst area. o to mi chodzi i nie wiem jak to zrobić.
askone
  1. $kod = $_POST['kod'];
  2.  
  3. $kod = str_replace('$', '', $kod);
  4.  
  5. foreach(explode(' ', $kod) as $row => $value)
  6. {
  7. $opis .= $_POST[$value]. ' ';
  8. }


No i oczywiście wtedy:
  1. echo $opis;
sliwa007
Praktycznie wogole nie znam sie na programowaniu poza paroma zrobionymi formularzami kontaktowymi i nie zabardzo dlaczego:

  1. $opis .= $_POST[$value]. ' ';


i
  1. echo $opis;


skoro opis jest jedną z opcji wyżej a nie odpowiada za wyświetlanie kodu ?
gorden
Cytat(sliwa007 @ 18.08.2010, 14:49:55 ) *
opis przedmiotu: ble ble opis
kontakt : ble ble kontakt
wysylka: bleble wysylka
platnosci: bleble platnosci
kod: $wysylka

i po kliknieciu na wyslij pojawia się teskt $wysylka, a chce żeby się pojawiał "bleble wysylka",


jeśli ktoś wpisze nazwe zmiennej w kodzie html to jasne, że wyswietli mu sie "$wysylka", a nie "bleble wysylka" ... mozna zrobic tak:

  1. $kod = $_POST['kod'];
  2. if($kod == "\$wysylka") { $kod = $_POST['wysylka']; }

w ten sposób echo $kod wyświetli wartość posta wysylka tongue.gif
sliwa007
chyba cos zle napisalem, chodzi mi o to że wklejając w to okno "KOD" kod html typu:

  1. <div id="opis">$opis</div>
  2. <div id="wysylka">$wysylka</div>
  3. <div id="kontakt">$kontakt</div>
  4. <div id="platnosc">$platnosci</div>


po naciśnięciu przycisku "wyślij" pojawił się html w formie

  1. <div id="opis">jakiś tam tekst z inputa</div>
  2. <div id="wysylka">jakiś tam tekst z inputa</div>
  3. <div id="kontakt">jakiś tam tekst z inputa</div>
  4. <div id="platnosc">jakiś tam tekst z inputa</div>


moze teraz to wyglada jaśniej
gorden
  1. <?php
  2.  
  3. $opis = $_POST['opis'];
  4. $kontakt = $_POST['kontakt'];
  5. $wysylka = $_POST['wysylka'];
  6. $platnosc = $_POST['platnosc'];
  7. $kod = $_POST['kod'];
  8.  
  9. if(empty($opis) || empty($kontakt) || empty($wysylka) || empty($platnosc)) {
  10.  
  11. echo "<form action=\"\" method=\"post\">";
  12.  
  13. echo "Opis przedmiotu <textarea cols=\"40\" rows=\"3\" name=\"opis\"></textarea><br>";
  14. echo "Kontakt <textarea cols=\"40\" rows=\"3\" name=\"kontakt\"></textarea><br>";
  15. echo "Wysyłka <textarea cols=\"40\" rows=\"3\" name=\"wysylka\"></textarea><br>";
  16. echo "Płatność <textarea cols=\"40\" rows=\"3\" name=\"platnosc\"></textarea><br>";
  17. echo "Kod <textarea cols=\"40\" rows=\"3\" name=\"kod\"></textarea><br>";
  18. echo "<input type=\"submit\" value=\"wyslij\">";
  19. echo "</form>";
  20. }
  21. else {
  22.  
  23.  
  24. echo "Opis przedmiotu <textarea cols=\"40\" rows=\"3\" name=\"opis\">$opis</textarea><br>";
  25. echo "Kontakt <textarea cols=\"40\" rows=\"3\" name=\"kontakt\">$kontakt</textarea><br>";
  26. echo "Wysyłka <textarea cols=\"40\" rows=\"3\" name=\"wysylka\">$wysylka</textarea><br>";
  27. echo "Płatność <textarea cols=\"40\" rows=\"3\" name=\"platnosc\">$platnosc</textarea><br>";
  28. echo "Kod <textarea cols=\"40\" rows=\"3\" name=\"kod\">$kod</textarea><br>";
  29. }
  30. ?>


dalej nie rozumiem, o to chodzi?
jesli ktos wpisze kod html w poscie "kod", to mu sie wyswietli ten kod w postaci kodu, a nie jego wykonania
a jesli chcesz bez textarea uzyj fukncji print_r
sliwa007
Chodzi mi o takie cos:

Wypełniamy wszystkie pola



po kliknieciu "wyslij" chciałbym otrzymać taki efekt:



netoperz
  1. if (strstr($kod,'$opis')){
  2. $kod=str_replace('$opis',"$opis",$kod);
  3. }
  4. if (strstr($kod,'$kontakt')){
  5. $kod=str_replace('$kontakt',"$kontakt",$kod);
  6. }
  7. if (strstr($kod,'$wysylka')){
  8. $kod=str_replace('$wysylka',"$wysylka",$kod);
  9. }
  10. if (strstr($kod,'$platnosc')){
  11. $kod=str_replace('$platnosc',"$platnosc",$kod);
  12. }


Teraz
  1. echo $kod;

powinno wyświetlić wartości zmiennych.
Pozdrawiam smile.gif
gorden
prosze bardzo oto skrypt.

  1. <?php
  2.  
  3. $opis = $_POST['opis'];
  4. $kontakt = $_POST['kontakt'];
  5. $wysylka = $_POST['wysylka'];
  6. $platnosc = $_POST['platnosc'];
  7. $kod = $_POST['kod'];
  8.  
  9. if(empty($opis) || empty($kontakt) || empty($wysylka) || empty($platnosc)) {
  10.  
  11. echo "<form action=\"\" method=\"post\">";
  12.  
  13. echo "Opis przedmiotu <textarea cols=\"40\" rows=\"3\" name=\"opis\"></textarea><br>";
  14. echo "Kontakt <textarea cols=\"40\" rows=\"3\" name=\"kontakt\"></textarea><br>";
  15. echo "Wysyłka <textarea cols=\"40\" rows=\"3\" name=\"wysylka\"></textarea><br>";
  16. echo "Płatność <textarea cols=\"40\" rows=\"3\" name=\"platnosc\"></textarea><br>";
  17. echo "Kod <textarea cols=\"40\" rows=\"3\" name=\"kod\"></textarea><br>";
  18. echo "<input type=\"submit\" value=\"wyslij\">";
  19. echo "</form>";
  20. }
  21. else {
  22. $pos_opis = strpos('$opis', $kod);
  23. if($pos_opis === false) { $trsc .= "<div id=\"opis\">$opis</div>"; }
  24. $pos_kontakt = strpos('$kontakt', $kod);
  25. if($pos_kontakt === false) { $trsc .= "\n<div id=\"kontakt\">$kontakt</div>"; }
  26. $pos_wysylka = strpos('$wysylka', $kod);
  27. if($pos_wysylka === false) { $trsc .= "\n<div id=\"wysylka\">$wysylka</div>"; }
  28. $pos_platnosc = strpos('$platnosc', $kod);
  29. if($pos_platnosc === false) { $trsc .= "\n<div id=\"platnosc\">$platnosc</div>"; }
  30.  
  31.  
  32. echo "Oto kod:<br><textarea cols=\"60\" rows=\"7\" name=\"kod\">$trsc</textarea>";
  33.  
  34. }
  35. ?>


gotowy do wklejenia, efekty takie będą jakie przedstawiłeś na ostatnim screenie, jeśli w treści zostanie wpisane $opis to przypisze mu diva , analogicznie z innymi
sliwa007
Witam,

nietoperz rozwiązał problem, dziekowa wam wszystkim.

jeszcze jedna sprawa bo wklejając np w miejsce pola "KOD" kod <div class="costam">, to po naciśnięciu przycisku wyślij otrzymuje kod <div class=\"costam\"> czy da się to zmienić ?
netoperz
  1. $kod=str_replace('\"','"',$kod);
sliwa007
juz sobie poradzilem w ten sposob, ale dzieki smile.gif

  1. $kod = stripslashes($_POST['kod']);
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.