Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmiana nazwy zmiennej
Forum PHP.pl > Forum > Przedszkole
vbig
Witam. Nie wiem specjalnie jak opisać mój problem, tak więc przedstawię go na przykładzie.

Mam zmienne
$CostamX i $CostamY
do których przypisane są liczby.
Następnie w formularzu z listy wybieram np. Costam.
Costam z formularza sprowadzam do zmiennej $Nazwa ($NAZWA=floatval($_POST['LISTA_1']);)

I tutaj mam pytanie. Jak zrobić aby do zmiennej NAZWA dodać na końcu X bądź Y? (Tak, aby w efekcie powstała zmienna $NAZWAX, czyli po podstawieniu $COSTAMX). Chodzi mi o samo dodanie tej literki na koniec. Proszę o pomoc :)
flashdev
  1. $a = 5;
  2. $a = 5 . 'X';
CuteOne
W OOP robi się to w ten sposób:

  1. class aaa {
  2.  
  3. public function set($key, $value) {
  4. $this->$key = $value;
  5. }
  6. }
  7. $a = new aaa;
  8. $a->set('zmienna',500);
  9. echo $a->zmienna;


ps. możesz też użyć eval();
vbig
@CuteOne: Wybacz ale widząc kod nie wiem czy zrozumiałeś pytanie (nie mówie tego obraźliwie, sam bym go nie zrozumiał, a przeglądajac kod który dałeś to nie wiem specjalnie czy jest on mi w stanie pomóc, ale mogę się mylić...)
@Flashdev: Niestety nie działa. Pokażę kod, bo chyba troche nagmatwałem tongue.gif

  1. <?php
  2. $JedenX = 10;
  3. $DwaX = 15;
  4. $TrzyX = 20;
  5. $JedenY = 3;
  6. $DwaY = 6;
  7. $TrzyY = 9;
  8.  
  9. if (isset($_POST['kod'])) {
  10. $wsp_a=floatval($_POST['a']);
  11. $wsp_b=floatval($_POST['b']);
  12. echo "Współrzędne X i Y:" . "<br />" . "<b>";
  13. print_r($wsp_a);
  14. echo "</b>" . "<br />" . "Współrzędne X i Y:" . "<br />" . "<b>";
  15. print_r($wsp_b);
  16. echo "</b>" . "<hr />";
  17. echo "Kod:" . " <b>";
  18. $kod = $wsp_a + $wsp_b;
  19. echo $kod;
  20. echo "</b>";
  21. } else {
  22. echo "Wybierz.";
  23. }
  24. ?>
  25. <form action="<?php echo ($_SERVER['SCRIPT_NAME']); ?>" method="POST">
  26. Wybierz współrzędne:<br />
  27. Współrzędna X<select name="a">
  28. <option>Jeden</option>
  29. <option>Dwa</option>
  30. <option>Trzy</option>
  31. </select>
  32. Współrzędne Y <select name="b">
  33. <option>Jeden</option>
  34. <option>Dwa</option>
  35. <option>Trzy</option><br /><br />
  36. <input type="submit" name="kod" value="Oblicz!" />
  37. </form>


Zmiennych jest dużo więcej, dlatego chciałbym, aby współrzędna wybrana w formularzu była zwyczajnie zamieniana na nazwę z formularza z X'em na końcu...
Crozin
@CuteOne: Za taki kod powinno się obcinać kolejne palce u stóp.
@vbig: Jeżeli potrzebujesz mieć dynamiczną nazwę zmiennej - na 99.9% coś zrypałeś, bo takich sytuacji być nie powinno. Powinieneś użyć tablicy:
  1. <?php
  2.  
  3. $coordinates = array(
  4. 1 => array('x' => 10, 'y' => 3),
  5. 2 => array('x' => 15, 'y' => 6),
  6. 3 => array('x' => 20, 'y' => 9)
  7. );
  8.  
  9. if ($_POST) {
  10. $x = $coordinates[(int) $_POST['x']]['x'];
  11. $y = $coordinates[(int) $_POST['y']]['y'];
  12.  
  13. sprintf('Współrzędne to %dx%d', $x, $y);
  14. }
  15.  
  16. ?>
  17. <form ... >
  18. <select name="x">
  19. <option value="1">Jeden</option>
  20. ...
  21. </select>
  22. ...
Oczywiście powinieneś dodać sprawdzanie czy wartość indeksy "x", "y" z tablicy _POST mają prawidłowe wartości i czy w ogóle istnieją.
vbig
wszystko działa smile.gif
Dziękuję za pomoc i można zamknąć biggrin.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.