Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP] Odświerznie zmiennej PHP po wyborze opcji z listy ? Jak ?
warezxp
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.03.2007

Ostrzeżenie: (0%)
-----


Witam !

Mam taki problem otóż mam formularz w którym jest lista wyboru, i chciałbym aby po wybraniu jakiejś opcji została zaktualizowana zmienna $x, która z kolei miała by być wyświetlona miedzy cudzysłowami , ale nie wiem jak tego dokonać kombinowałem coś z JS ale jestem za słaby. Będę wdzięczny za pomoc. Poniżej fragment formularza by lepiej zrozumieć mój problem:
(IMG:http://www.fototube.pl/pictures/untitled58.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Najprościej jak się da
[JAVASCRIPT] pobierz, plaintext
  1. function changeit( v )
  2. {
  3. document.getElementById( 'pole' ).innerHTML = v;
  4. }
[JAVASCRIPT] pobierz, plaintext

  1. <select onchange="changeit( this.value );">

*pisane z palca.
Go to the top of the page
+Quote Post
kamil4u
post
Post #3





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Rozumiem, że tam masz:
Cytat
W bazie dla arkusza informatyk znajdują 123 zadania

I chcesz zmienić i informatyk i liczbę 123 (IMG:style_emoticons/default/smile.gif)

Jeśli tak to poczytaj też o AJAX-sie, żeby dynamicznie zmienić PHP-owską zmienną $x. Lub przy wczytywaniu strony niech PHP tworzy rodzaj zmiennych z ilością tych rekordów, coś ala:
Kod
<script>
var informatyk = <?php echo($ilość_rekordów_dla_informatyka); ?>;
var teleinformatyk = <?php echo($ilość_rekordów_dla_teleinformatyka); ?>;
...
<script>

i połącz to z tym co napisał przedmówca.
Go to the top of the page
+Quote Post
warezxp
post
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.03.2007

Ostrzeżenie: (0%)
-----


Hi !

Kurcze coś nie działa, ale zapewne to wina źle wywoływanej zmiennej JS. Zrobiłem tak:
  1. <head>
  2. <script type="text/javascript">
  3. function changeit( v )
  4. {
  5. document.getElementById( 'arkusz' ).innerHTML = v;
  6. }
  7. </script>
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  9. </head>
  10. ...
  11. echo '<center><form name="testy" method="post" action="index.php" enctype="multipart/form-data">
  12. <br><b><font color="#FF9900">Dodaj zadanie egzaminazcyjne do bazy MySQL:</font></b><br><br>
  13. Wybierz arkusz z pytaniami dla kierunku Technik: <SELECT name="arkusz" id="arkusz" onchange="changeit( this.value );">';
  14. $res = mysql_list_tables("sdhostp_testy");
  15. $num_rows = mysql_num_rows($res);
  16. for ($i = 0; $i < $num_rows; $i++)
  17. {
  18. echo "<OPTION value='".mysql_tablename($res, $i)."'>".mysql_tablename($res, $i)."</OPTION>";
  19. }
  20. $pyt = mysql_query("SELECT * FROM $arkusz");
  21. echo '</SELECT><br><br>(W bazie dla arkusza "<script language="javascript" type="text/javascript">alert(v);</script>" aktualnie znajduje się '.mysql_num_rows($pyt).' pytań.)<br>
  22. ...


Dynamiczne zmieniająca się zmienna PHP rozwiązała by wszystko w JS i innych jestem zielony. Będę wdzięczny z dalszą pomoc.
Go to the top of the page
+Quote Post
kamil4u
post
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Tragedia (IMG:style_emoticons/default/winksmiley.jpg)

No to od początku:
- najpierw musisz zrobić zmienne JS, które będą w sobie zawierać informacje na temat ilości rekordów dla poszczególnych kategorii
- przy zamianie select-a wykonuje się zdarzenie change, w którym musisz wywołać odpowiednią funkjcę
- funkcja ta musi zmienić zawartość 2 elementów o odpowiednich id

Przykład bez PHP:
Kod
<script>
var test1 = 123;//te dane musisz pobrać z PHP
var test2 = 456;//te dane musisz pobrać z PHP
var test3 = 789;//te dane musisz pobrać z PHP

function changeit(zmienna){
document.getElementById('pole').innerHTML = zmienna + ' - '+ eval(zmienna); //eval to niekoniecznie najlepsze rozwiązanie
}
window.onload = function(){ changeit('test1'); }
</script>

<select onchange="changeit(this.value);">';
<option value='test1'>test1</option>
<option value='test2'>test2</option>
<option value='test3'>test3</option>
</select>

<br>
<span id="pole"></span>


Lub skorzystaj z AJAX-a. Jak nie chcesz robić tego samemu to są różnorakie biblioteki: np. mintAjax lub jQuery

Ten post edytował kamil4u 28.12.2009, 13:12:44
Go to the top of the page
+Quote Post
warezxp
post
Post #6





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.03.2007

Ostrzeżenie: (0%)
-----


Źle się rozumiemy,
(IMG:http://www.fototube.pl/pictures/untitleda.png)

I najlepiej żeby trzymała to jakaś dynamiczna zmienna, gdyż w dalszej części kodu chciałbym po przetwarzać ją jeszcze trochę.
Go to the top of the page
+Quote Post
kamil4u
post
Post #7





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Dokładnie to napisał Ci ~skowron-line . Więc nie wiem w czym masz problem... Poczytaj co to takiego "getElementById" i stwórz odpowiedni element - najlepiej span. Wartość zawsze możesz sobie spr. wyciągając ją właśnie z tego elementu lub zapisując ją wcześniej do zmiennej globalnej.... A jak chcesz, żeby zmienna była dostępna z poziomu PHP użyj AJAX-a lub ciasteczka.
Go to the top of the page
+Quote Post
warezxp
post
Post #8





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.03.2007

Ostrzeżenie: (0%)
-----


O to się rozchodzi że gdy skorzystam z tego co napisał kolega w drugim poście tj. posłużę się:
  1. document.getElementById('arkusz').innerHTML;

To wówczas wyświetla mi z listy <Select> o nazwie arkusz wszystkie możliwe opcje do wyboru, anie to co ktoś wybrał ! Dokładnie takie coś wyświetla:
  1. <option value="informatyk">informatyk</option><option value="teleinformatyk">teleinformatyk</option><option value="zywienia">zywienia</option>


Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post
kamil4u
post
Post #9





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Zanim coś napiszesz spr. wszystkie funkcje, gdyż źle to zrozumiałeś...
Wszystko co potrzebujesz masz w tym temacie. Przeanalizuj też kod podany przeze mnie o 13.09(jak jakiegoś fragmentu nie rozumiesz zapytaj się)

Poczytaj o innerHTML i nawigacji po elementach przez DOM.

PS.
Cytat
1.
function changeit( v )
2.
{
3.
document.getElementById( 'pole' ).innerHTML = v;
4.
}
Id w tym wypadku nie odnosi się do listy rozwijanej, a do elementu HTML o id=pole, którego jeszcze nie masz, a powinien znaleźć się tu:
Kod
echo '</SELECT><br><br>(W bazie dla arkusza <span id="pole"></span> aktualnie znajduje się '.mysql_num_rows($pyt).' pytań.)<br>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:28