Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Przesyłanie zmiennych php/javascript
Forum PHP.pl > Forum > Przedszkole
frankiejojo
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ź
Pyton_000
Używaj BBCODE i pokaż większy kod bo tu nic nie widać
nospor
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
frankiejojo
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,
luki100011
Pisane z palca

  1. $('input').each(){
  2. alert($(this).val());
  3. }
Turson
Skoro to wszystko wiesz to czemu masz dalej te błędy? Wlasnie przez to nie dziala
nospor
Po raz drugi prosimy cie o BBCODE. Trzeci raz prosić nie będziemy.
frankiejojo
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>
luki100011
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).
Comandeer
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.
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.