Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP] odczytywanie wartości klikniętego linka
poczatkujaca12
post 5.05.2016, 21:13:37
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 24.06.2010
Skąd: Warszawa

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


witam
mam menu z jednej strony i formularz
chciałabym aby formularz był wysyłany zawsze niezależnie na który link kliknie user.
niestety ani
  1. <a href="drugastrona.php" onclick="document.forms['form1'].submit();return:false;"

ani z przekierowaniem w JS
  1. onclick="document.forms['form1'].submit();return:false;window.location.href ='drugastrona.php';"

Nie działa - formularz się wysyła, anie nie idzie dalej....

Przyszło mi do głowy że wysyłałabym formularz na kliknięty <a href="zmienna.php"...> (ustawiając w formularzu
  1. <input type="hidden" value="zmienna.php" name="link" />

tylko nie wiem jak z użyciem JS pobrać do zmiennej dane aby móc przekierować w sposób
  1. header("Location: ".$_POST['link']);

Jest taka możliwość?

Wiem że można coś podziałać z .atrr('href') - ale nie wiem jak to ugryźć
Czy da się prościej i nie potrzebnie kombinuje?
formularze są dosć obszerne, dlatego zrezygnowałam z automatycznego ich wysyłania co zmianę wartości...
Go to the top of the page
+Quote Post
Star
post 5.05.2016, 22:36:06
Post #2





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


  1. <!doctype html>
  2. <html lang="pl">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7.  
  8. <form id="form1" method="get" action="action_form.php">
  9.  
  10. Imie: <input type="text" name="imie"><br>
  11. Nazwisko: <input type="text" name="nazwisko"><br>
  12.  
  13. </form>
  14.  
  15. <a onclick="document.getElementById('form1').submit();" style="cursor:pointer;">Wyślij</a>
  16.  
  17. </body>
  18. </html>


Go to the top of the page
+Quote Post
niewiemjak
post 6.05.2016, 08:42:52
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 28.01.2015

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


Nie do końca rozumiem...
formularz się wysyła...
tylko nie wiem jak pobrać zmienną aktualnie klikanego linka?
w stylu
menu1
menu2
menu3

reszta strony z formularzem
kliknę menu 1 wykona się formularz (wszystko mogę wysyłać na jedną stronę - np post.php)
następnie chcę aby przeniosło na stronę z linka 1, lub linka 2 (ale dane dotyczą formularza z strony istniejącej)
Go to the top of the page
+Quote Post
Star
post 6.05.2016, 11:07:24
Post #4





Grupa: Zarejestrowani
Postów: 294
Pomógł: 34
Dołączył: 16.02.2015

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


Czyli chcesz wysłać formularz do pliku a.php bez przeladowania i po wysłaniu przejść do pliku b.php.

Tak?

  1. <!doctype html>
  2. <html lang="pl">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <a href="a.php" onclick="formSubmit(this.href);" >menu1</a>
  8. <a href="b.php" onclick="formSubmit(this.href);" >menu2</a>
  9. <a href="c.php" onclick="formSubmit(this.href);" >menu3</a>
  10.  
  11. <br>
  12. Imie: <input type="text" name="imie" id="imie"><br>
  13. Nazwisko: <input type="text" name="nazwisko" id="nazwisko"><br>
  14.  
  15.  
  16.  
  17. function formSubmit(link) {
  18. var imie = document.getElementById('imie').value;
  19. var nazwisko = document.getElementById('nazwisko').value;
  20.  
  21. var xhttp = new XMLHttpRequest();
  22. xhttp.onreadystatechange = function() {
  23. if (xhttp.readyState == 4 && xhttp.status == 200) {
  24. window.location.href = link;
  25. }
  26. };
  27.  
  28. xhttp.open("POST", "jakisplik.php", true);
  29. xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  30. xhttp.send("imie=" +imie+ "&nazwisko=" +nazwisko+ " ");
  31. }
  32.  
  33. </script>
  34. </body>
  35. </html>


Ten post edytował Star 6.05.2016, 12:14:28
Go to the top of the page
+Quote Post
CuteOne
post 6.05.2016, 11:55:34
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Tak jak napisał kolega wyżej, najlepszym rozwiązaniem było by wysłanie danych formularza ajaxem, i po pozytywnym ich odebraniu redirect na adres z linka. Na wstępie polecam zaciągnąć sobie bibliotekę jQuery (znacząco ułatwi tego typu operacje). Następnie zacznij lekturę od:
http://api.jquery.com/jquery.ajax/
http://stackoverflow.com/questions/5508021...ref-with-jquery
przyda się również znajomość metody event.preventDefault(), aby kliknięcie w link nie przenosiło nas od razu na inną stronę

Ten post edytował CuteOne 6.05.2016, 11:56:56
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 Wersja Lo-Fi Aktualny czas: 25.04.2024 - 17:43