Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeczytanie zmiennej z innej strony przez obiekt
Forum PHP.pl > Forum > PHP > Object-oriented programming
pspgor
Witam. Chciałbym ze strony a.php przekazać zmienną do strony b.php.
Próbowałem przez formularz metodą POST oraz GET, ale nie wychodziło.
W google wyczytałem, że taka operacja nawet nie jest możliwa. I teraz jestem w kropce.

Poszukuję sposobu, aby przekazać zmienną do tego kodu:
Strona b.php
  1. <?php
  2.  
  3. class SimpleXMLExtended extends SimpleXMLElement
  4. {
  5. public function addCData($cdata_text)
  6. {
  7. $node = dom_import_simplexml($this);
  8. $no = $node->ownerDocument;
  9. $node->appendChild($no->createCDATASection($cdata_text));
  10. }
  11.  
  12. }
  13.  
  14. $id = $_POST['liczba'];
  15.  
  16. $plikxml = "library.xml";
  17. $xml = simplexml_load_file($plikxml,'SimpleXMLExtended');
  18. var_dump( $xml );
  19. // instead of $xml = new SimpleXMLElement('<site/>');
  20. $xml->photo[$id]->filename = NULL; // VERY IMPORTANT! We need a node where to append
  21. $xml->photo[$id]->filename->addCData('Sasdasdas');
  22. echo $xml->asXML();
  23. }
  24. ?>


Chodzi o to by zmienna $id była pobierana ze strony a.php

Strona a.php składa się z

  1. </php
  2. $xml = simplexml_load_file('library.xml');
  3. $count = 0;
  4. foreach($xml->photo as $photo){
  5. $count++;
  6. <form action="b.php" method="post">
  7. <input name="liczba" type="hidden" value="'.$count.'" />
  8. <input type="submit" value="Wyślij" />
  9. </form>';
  10. }
  11. ?>


Zależy w jaki formularz się wybierze inna jest zmienna.
Czekam na jakieś podpowiedzi, bo tak jak mówiłem jestem w kropce wink.gif
Pozdrawiam
sazian
nie rozumiem w czym problem
przecież wartość z formularza jest przekazywana do drugiego pliku

dar w pliku b.php var_dump($_POST);
Orzeszekk
Da sie przez get i przez post.

Przez POST:
plik a.php
  1.  
  2. <?php
  3. $xml = simplexml_load_file('library.xml');
  4. $count = 0;
  5. ?>
  6.  
  7. <?php foreach($xml->photo as $photo) ?>
  8. <?php $count++ ?>
  9.  
  10. <form action="b.php" method="post">
  11. <input name="liczba" type="hidden" value="<?php echo $count; ?>" />
  12. <input type="submit" value="Wyślij" />
  13. </form>


Ten temat sie bardziej nadaje na przedszkole niz na oop.


Przez GET:
plik a.php
  1.  
  2. <?php
  3. $xml = simplexml_load_file('library.xml');
  4. $count = 0;
  5. ?>
  6.  
  7. <?php foreach($xml->photo as $photo) ?>
  8. <?php $count++ ?>
  9.  
  10. <form action="b.php?liczba=<?php echo $count; ?>" method="post">
  11. <input type="submit" value="Wyślij" />
  12. </form>
pspgor
No właśnie gdy tak robię wyskakują błędy:

Notice: Indirect modification of overloaded element of SimpleXMLExtended has no effect in C:\wamp\www\b.php on line 20
Notice: Trying to get property of non-object in C:\wamp\www\b.php on line 21
Fatal error: Call to a member function addCData() on a non-object in C:\wamp\www\b.php on line 21

sad.gif

Co do wypowiedzi kolegi 'sazian' var_dump wywołuje:

array
'liczba' => string '2' (length=1)

Jestem w totalnej kropce, pewnie popełniam jakiś dziecinny błąd

Wydaje mi się, że liczba powinna być typu int, lecz nie wiem za bardzo jak to teraz zrobić.

Eureka!

Jeżeli miałoby się komuś to przydać:
Zmieniłem typ za pomocą kodu:

$pierwsza_zmienna=$_POST['liczba'];
$druga_zmienna=(int)$pierwsza_zmienna;

Dziękuję bardzo za pomoc. 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.