Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak za pomocą zwykłego odnośnika wysłać dane metodą POST?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Gordon1x
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?
sebekzosw
  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';
loganek
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>
Gordon1x
Bardzo dziękuję za pomoc.
krzkar
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.
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.