Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax/php] Chcę wykonać skrypt php na tej samej stronie co skrypt js
Morale
post
Post #1





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


mam taki skrypt w sekcji head:

Kod
<script type="text/javascript">

function getXMLHttpRequestObject()
{
  try{
    return new XMLHttpRequest();
  }
  catch(e){
    try{
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e){
      return false;
    }
  }
}

function pobierzDane()
{
  if(XMLHttpRequestObject){
    var div = document.getElementById("warstwaDanych");
    var przyciskEl = document.getElementById("bWyslij");
    var tekst = document.getElementById("tf1").value;
    var tekst2 = document.getElementById("tf2").value;

    przyciskEl.disabled = true;
    XMLHttpRequestObject.open("POST", "http://localhost/dane.php");
    XMLHttpRequestObject.setRequestHeader(
      'Content-Type', 'application/x-www-form-urlencoded');

    XMLHttpRequestObject.onreadystatechange = function()
    {
      if (XMLHttpRequestObject.readyState == 4){
        if(XMLHttpRequestObject.status == 200){
          var tekst = XMLHttpRequestObject.responseText;

          
          tekst = unescape(tekst);
          tekst2 = unescape(tekst2);
          div.innerHTML = tekst;
        }
        przyciskEl.disabled = false;
      }
    }
    tekst = escape(tekst);
    tekst2 = escape(tekst2);
    XMLHttpRequestObject.send("tekst=" + tekst + "&tekst2=" + tekst2);
  }
}

var XMLHttpRequestObject = getXMLHttpRequestObject();

</script>


obsługa:
  1. <div>
  2. <input type="text" id="tf1" /><br>
  3. <input type="text" id="tf2" /><br>
  4. <br>
  5. <input type="button" value="Wyślij"
  6. onclick="pobierzDane();" id="bWyslij" />
  7. <br /><br />
  8. </div>
  9. <div id="warstwaDanych">
  10. Odpowiedź serwera
  11. </div>


I jeśli ten skrypt jest w innym pliku niż w dane.php to jest ok. Ale jeśli chcę go wywołać w pliku dane.php, bo chcę mieć w tym samym pliku skrypt php i js to jest problem, bo tworzą się (za każdym razem gdy kliknę na wyślij) nowe inputy i nic się nie wysyła...

Zależy mi na tym, by skrypt js działał razem ze skryptem php - w jednym pliku.
Da się tak ?


--------------------
Jeśli pomogłem to kliknij Pomógł.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
-Wieviór-
post
Post #2





Goście







A jak wygląda ten skrypt PHP, i co Ty tu w ogóle starasz się zrobić?
Go to the top of the page
+Quote Post
nevt
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


w JS musisz poprawić linijkę
Kod
XMLHttpRequestObject.send("action=ajax&tekst=" + tekst + "&tekst2=" + tekst2);

a w pliku dane.php dodać warunek:
  1. <?php
  2. $action = (isset($_POST['action']) ? $_POST['action']) : '');
  3. if($action == 'ajax')
  4. {
  5. // ZWRACASZ TYLKO WNĘTRZE DIV o ID="warstwDanych"
  6. }
  7. else
  8. {
  9. // ZWRACASZ CAŁĄ STRONKĘ
  10. }
  11. ?>

i powinno zaskoczyć. tak jak masz w tej chwili, to po każdym wywołaniu AJAX do wnętrza DIV o ID="warstwDanych" wstawiasz wszystko co wypluwa plik dane.php - czyli pewnie całą stronkę, za każdym kliknięciem w submit kolejną kopię...


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Morale
post
Post #4





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


A nie ma jakiegoś innego sposobu ? Albo jakaś gotowa biblioteka do przesyłania danych w tle ?


--------------------
Jeśli pomogłem to kliknij Pomógł.
Go to the top of the page
+Quote Post
barthpl
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 35
Dołączył: 5.12.2006
Skąd: Wrocław

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


pytasz o bibliotekę typu xajax questionmark.gif


--------------------
Jeżeli pomogłem rozwiązać Twój problem, kliknij pomógł.
Go to the top of the page
+Quote Post
Morale
post
Post #6





Grupa: Zarejestrowani
Postów: 152
Pomógł: 2
Dołączył: 28.03.2007

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


I co ta biblioteka daje ? Bo ja chcę jak najmniejszymi zmianami zrobić wysyłanie danych (tekstowych) w tle.

Słyszałem też coś o bibliotece Anakina ?

Ten post edytował Morale 20.03.2008, 12:33:16


--------------------
Jeśli pomogłem to kliknij Pomógł.
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: 21.08.2025 - 21:51