Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak za pomocą zwykłego odnośnika wysłać dane metodą POST?
Gordon1x
post 6.07.2008, 13:09:09
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 13.06.2007

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


Chce wysłać dane metodą POST klikając na zwykły, tekstowy odnośnik.

Odnośnik użyty w elemencie a href nie może wysłać danych metodą POST, ponieważ element a obsługuje tylko wysyłanie parametrów za pomocą metodą GET. Więc w jaki sposób napisać kod javascript, aby wysłać dane metodą post?
Go to the top of the page
+Quote Post
sebekzosw
post 6.07.2008, 13:35:18
Post #2





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

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


  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function akcja() {
  4. document.forms['jakas_akcja'].action = 'link';
  5. document.forms['jakas_akcja'].submit();
  6. }
  7. //]]>
  8.  
  9.  
  10. <form name="jakas_akcja" method="post">
  11. <input type="text" name="sa" />
  12. <a href="javascript:akcja()">Wyślij</a>
  13. </form>


zamiast
  1. document.forms['jakas_akcja'].action = 'link';
dajesz link do jakiej strony ma się wykonać akcja :-)

np.:
  1. document.forms['jakas_akcja'].action = 'http://www.google.pl';


Ten post edytował sebekzosw 6.07.2008, 13:40:34
Go to the top of the page
+Quote Post
loganek
post 6.07.2008, 13:37:41
Post #3





Grupa: Zarejestrowani
Postów: 81
Pomógł: 20
Dołączył: 14.06.2007

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


można też ajax'em
Kod
<html>
<head>
<script>
function ZapytaniePHP(url, post){
    if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();
    else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    if (xmlHttp == null){alert("Nie udało się zainicjować obiektu xmlHttpRequest!");return;}
    xmlHttp.onreadystatechange = function (){
        if (xmlHttp.readyState == 4 || xmlHttp.status == 200){
            document.body.innerHTML = xmlHttp.responseText;
        }
    }
    xmlHttp.open("POST", url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttp.send(post);

}
</script>
</head>
<body>
<a onclick="ZapytaniePHP('adres.php', 'zmienna=wartosc&druga=drugawartosc')">post</a>
</body>
</html>


Ten post edytował loganek 6.07.2008, 13:38:16


--------------------
Impossible is nothing!!!
Go to the top of the page
+Quote Post
Gordon1x
post 7.07.2008, 07:29:29
Post #4





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 13.06.2007

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


Bardzo dziękuję za pomoc.
Go to the top of the page
+Quote Post
krzkar
post 5.05.2009, 09:36:38
Post #5





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 3.05.2009

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


Przede wszystkim witam wszystkich na tym forum, bo to mój pierwszy post (i od razu prośba) smile.gif

Szukając rozwiązanie mojego problemu znalazłem ten temat i odkopując go pragnę was prosić o pomoc

Próbowałem zmodyfikować ten kod



  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function akcja() {
  4. document.forms['jakas_akcja'].action = 'link';
  5. document.forms['jakas_akcja'].submit();
  6. }
  7. //]]>
  8.  
  9.  
  10. <form name="jakas_akcja" method="post">
  11. <input type="text" name="sa" />
  12. <a href="javascript:akcja()">Wyślij</a>
  13. </form>


żeby otrzymać takie coś

1. Wchodzę na index.html

2. Automatycznie po wejściu na stronę się wysyła wartość "blabla" nazwy "sa" (sa to formularz na mojej stronie) do "imie.html"

Jedyne co na razie udało mi się osiągnać to

  1. <script type="text/javascript">
  2. //<![CDATA[
  3. function akcja() {
  4. document.forms['jakas_akcja'].action = 'imie.html';
  5. document.forms['jakas_akcja'].submit();
  6.  
  7. var sa = blabla;
  8.  
  9. }
  10. //]]>


Niestety spodziewam się, że idę złą drogą, ale na razie moje doświadczenie z JS jest znikome.

Proszę Cię, jak nawet dokładnie nie wiesz jak to wysłać, to chociaż o temat bądź wyrażenie pod którym mogę o tym poczytać i znaleźć rozwiązanie problemu.

Z góry dziękuję
---
Powinienem założyć nowy temat, bo nazwa tego nie do końca odzwierciedla moje wyzwanie?

Z racji tego, że zrobiłem postępy, jednak jeszcze nie mogę tego do końca rozgryźć. Mianowicie, użyłem skryptu użytkownika o nicku loganek, dostosowując go (skrypt, nie użytkownika) do moich potrzeb. Niestety jest jeszcze jedno ale, ale czemu to nie chodzi

  1.   <head>
  2.   <script>
  3.   function ZapytaniePHP(url, post){
  4.   if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();
  5.   else if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  6.   if (xmlHttp == null){alert("Nie udało się zainicjować obiektu xmlHttpRequest!");return;}
  7.   xmlHttp.onreadystatechange = function (){
  8.   if (xmlHttp.readyState == 4 || xmlHttp.status == 200){
  9.   document.body.innerHTML = xmlHttp.responseText;
  10.   }
  11.   }
  12.   xmlHttp.open("POST", url, true);
  13.   xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  14.   xmlHttp.send(post);
  15.  
  16.   }
  17.   </script>
  18.   </head>
  19.   <body onload="ZapytaniePHP('imie.html', 'drugie=Adam');"></body>
  20. </html>



Samo onload działa, bo np. wstawiając kod

  1. <body onload="alert('Przykładowy tekst');">


alert wyskakuje.

Ten post edytował krzkar 5.05.2009, 08:47:41
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: 18.05.2025 - 09:57