Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP] Przesyłanie zmiennych php/javascript, Przesyłanie zmiennych php/javascript
frankiejojo
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


temat trochę banalny:
funkcja w javascripcie jest taka
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. function kontakt(){
  3. $.get( "kontakt.php", {numer:$("#numer").val()} ).done(function( data ) {
  4. $("#wyniki").html(data);
  5.  
  6. });
  7. }
  8. </script>
[JAVASCRIPT] pobierz, plaintext

Generuję w php listę obiektów
  1. for ($i=0; $i <$ile_znalezionych; $i++)
  2. {
  3. $wiersz = mysqli_fetch_assoc($wynik);
  4. echo '<input type="image" src ="photo/';....
  5. echo stripslashes($wiersz['photo1']);
  6.  
  7. <input type="text" name="numer" id = "numer" value="<?php echo stripslashes($wiersz['numer']); ?>">
  8. <input type="image" src = "zawartosc/obrazki/kontakt.jpg" onclick="kontakt();">
  9. }

i za każdym razem bez względu na liczbę rekordów w bazie pobiera mi jako $numer - dane z pierwszego rekordu - jak zrobić by brał z kolejnego?

Dzięki za podpowiedź
Powód edycji: [Kshyhoo]: bb-code, tagi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Używaj BBCODE i pokaż większy kod bo tu nic nie widać
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poniewaz tutaj:
$("#numer").val()
zawsze pobierasz wartosc z pierwszego znalezionego inputa o id NUMER.

1) ID nie mogą się powatarzac. Kazdy element ma miec UNIKALNE ID
2) Do kontakt.php masz zdaje sie leciec dla akutalnie kliknietego numeru wiec jego wartosc masz pobierac

ps: problem z PHP nie ma zadnego związku. Przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
frankiejojo
post
Post #4





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


Nospor - wiem o tym, że <form action nie działa do przesyłania danych funkcji java script a id na stronie musi być unikalne na stronie, wszedłem na to forum by się dowiedzieć co działa a nie co nie działa, bo to niestety wiem smile.gif
Wracam do tematu
Funkcja wygląda tak jak podałem wcześniej
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. function kontakt(){
  3. $.get( "kontakt.php", {numer:$("#numer").val()} ).done(function( data ) {
  4. $("#wyniki").html(data);
  5.  
  6. });
  7. }
[JAVASCRIPT] pobierz, plaintext

Następnie z bazy danych wyskakuje mi lista:
  1. for ($i=0; $i <$ile_znalezionych; $i++)
  2. {
  3. $wiersz = mysqli_fetch_assoc($wynik);
  4. echo '<form action = "kontakt()"; method = "post">';
  5. echo '<input type="text" name="numer" id = "numer" value="<?php echo stripslashes($wiersz['numer']); ?>">';
  6. ?>

Jak słusznie Nospor zauważył z tej listy wyskakuje mi dwa razy zmienna numer z ID

Pytanie jest jak zrobić by po wywołaniu funkcji przy pierwszej iteracji przesyłało mi zmienną numer o wartości 1 a w drugiej iteracji o wartości 2

Dzięki,
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
luki100011
post
Post #5





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

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


Pisane z palca

  1. $('input').each(){
  2. alert($(this).val());
  3. }


--------------------
Go to the top of the page
+Quote Post
Turson
post
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Skoro to wszystko wiesz to czemu masz dalej te błędy? Wlasnie przez to nie dziala
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po raz drugi prosimy cie o BBCODE. Trzeci raz prosić nie będziemy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
frankiejojo
post
Post #8





Grupa: Zarejestrowani
Postów: 111
Pomógł: 2
Dołączył: 20.07.2014

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


No widzisz Turson - wiem co nie działa tylko nie wiem co działa, podaję to co chcę zastąpić <form action...> tylko nie wiem czym/jak to zastąpić.
Luki - mogę Cię prosić o jakąś instrukcję do tego co napisałeś?
Nospor spróbuję z tym BBCodem - tylko się nie denerwuj - nie robię tego złośliwie - po prostu się nie znam obstawiam, że to ten przycisk na dole smile.gif
  1. <head>
  2. <script>
  3. function kontakt(){
  4. $.get( "kontakt.php", {numer:$("#numer").val()} ).done(function( data ) {
  5. $("#wyniki").html(data);
  6. });
  7. }
  8. </script>
  9. </head>
  10. <body>
  11. <?php
  12. $uzytkownik='uzytkownik';
  13. //laczenie z bazą danych
  14. require '../zawartosc/laczenie.php';
  15. $zapytanie = "select * from estate where agent like '".$uzytkownik."'";
  16.  
  17. //Następnie z bazy danych wyskakuje mi lista:
  18. $wynik = $db->query($zapytanie);
  19. $ile_znalezionych = mysqli_num_rows($wynik);
  20. for ($i=0; $i <$ile_znalezionych; $i++)
  21. {
  22. $wiersz = mysqli_fetch_assoc($wynik);
  23. echo '<form action = "kontakt()"; method = "post">';
  24. echo stripslashes($wiersz['oferta']);
  25. echo '<input type="text" name="numer" id = "numer" value="';
  26. echo stripslashes($wiersz['numer']);
  27. echo '">';
  28. echo '</form>';
  29. }
  30. ?>
  31. </body>
Powód edycji: [Kshyhoo]: bb-code
Go to the top of the page
+Quote Post
luki100011
post
Post #9





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

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


Nie działa bo napisali wyżej że nie można mieć dubli w ID, więc zmień najpierw to.

Instrukcja ? Tam nie ma do czego jej pisać - to coś w pętli zwróci dane z wszystkich inputów na stronie, nawet jak mają to samo ID (co jest błędem).

Ten post edytował luki100011 29.05.2015, 08:08:39


--------------------
Go to the top of the page
+Quote Post
Comandeer
post
Post #10





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

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


Cytat
to coś w pętli zwróci dane z wszystkich inputów na stronie, nawet jak mają to samo ID (co jest błędem)

Nie, nie jest to błąd. Polecam zajrzeć do specyfikacji HTML5, gdzie jest określone wymaganie unikalności [id] (jako mechanizmu generowania DOM), a następnie do specyfikacji CSS, gdzie tego wymagania już nie ma. Tym samym jQuery używający silnika CSS do pobierania elementów (via document.querySelectorAll) zwróci wszystkie elementy o danym [id]. Zatem działa to zgodnie ze standardem. A że standard jest lekko mówiąc kulawy - CÓŻ wink.gif

Co do problemu: szukasz zdarzenia submit. Wówczas do pola dostaniesz się choćby przez this.numer, więc [id] staje się zbędne.

Ten post edytował Comandeer 29.05.2015, 14:38:51


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 05:21