Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX] przekazywanie danych ze znacznikow input
Mrowek
post 29.07.2009, 08:26:28
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.08.2008

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


Mam taki urywek kodu:

Kod
<form>

   <div id="badania"><div class="otwBadania">Badania</div>

      <input name="aab1"/>

      <input name="aab32"/>

   </div>

   <div>

      <input type="button" value="Przelicz" onclick="getData('cena.php', 'sCena', 1)">

   </div>

</form>


troche ajaxa...


Kod
var XMLHttpRequestObject = false;

             if (window.XMLHttpRequest){

                 XMLHttpRequestObject = new XMLHttpRequest();

             } else if (window.ActiveXObject){

                 XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");

             }

function getData(dataSource, divID, cena)

             {

                 if(XMLHttpRequestObject) {

                     var obj = document.getElementById(divID);

                     XMLHttpRequestObject.open("POST", dataSource);

                     XMLHttpRequestObject.setRequestHeader('Content-type','application/x-www-form-urlencoded');

                     XMLHttpRequestObject.onreadystatechange = function()

                     {

                             if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)

                             {

                              obj.innerHTML = XMLHttpRequestObject.responseText;

                        }

                     }

                     XMLHttpRequestObject.send("cena=" + cena);

                 }

             }


i troszeczke php

Kod
<?php

if($_POST["cena"] == "1"){

         include('baza.php');

         $cennik= mysql_query("SELECT * FROM cennik") OR die(mysql_error());

         $cennik2=mysql_fetch_row($cennik);

         $cena = 0;

         echo $_POST['aab1'];

         for($i=1;$i<101;$i++){

             $licz = 'aab'.$i;

             $poszczCena = 0;

             if(!empty($_POST[$licz])){

             $r= mysql_query("SELECT cena FROM cennik WHERE skrot = '$licz'");

             $poszczCena = mysql_fetch_row($r);

             $cena = $cena + $poszczCena[0];

             }

         }

         echo $cena;

}

?>


Pytania brzmia nastepująco:

-dlaczego jak probuje przeslac dane metoda post przy uzyciu ajaxa, nie przenosi danych z inputow ktore sa w formularzu? 

-co trzeba zrobic by ajaxem przeslac dane z inputow lub tylko nazwy inputow bez wartosci?
Go to the top of the page
+Quote Post
Suh
post 29.07.2009, 14:53:32
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 27
Dołączył: 24.08.2007
Skąd: Tarnów

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


Przede wszystkim nie wysyła Ci inputów z formularza bo AJAX nic o nich nie wie.
Musisz np. w funkcji swojej getDate() zrobić "odnośniki" do odpowiednich inputów (document.getElementById()), przy czym w Twoich inputach musisz zmienić name na id.
I potem najwazniejsze w funkcji getDate, masz użytą metode send(). W niej musisz dopisać (tak jakbyś robił adres url metodą GET) wszystkie parametry, które chcesz wysłać łącząc je znakiem &, tzn.: 'param1=' + wart1 +'&param2=' wart2...


EDIT.
Znaczniki <form> są Ci w takiej sytuacji w ogóle nie potrzebne.

Ten post edytował Suh 29.07.2009, 15:02:28


--------------------
Pomogłem ? Odwdzięcz się, kliknij POMÓGŁ.
Go to the top of the page
+Quote Post
Mrowek
post 29.07.2009, 18:48:01
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 1
Dołączył: 22.08.2008

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


dzieki wielkie za wyjasnienie sprobuje sie dostosowac do Twoich uwag;].
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: 19.07.2025 - 10:01