Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] przekazywanie danych ze znacznikow input
Forum PHP.pl > Forum > Przedszkole
Mrowek
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?
Suh
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.
Mrowek
dzieki wielkie za wyjasnienie sprobuje sie dostosowac do Twoich uwag;].
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.