Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX, PHP] Przesyłanie informacji GET poprzez ajax - ustawienie nazwy pliku
Forum PHP.pl > Forum > XML, AJAX
cafepl_com
Witam,
chciałbym Was prosić o poradę: jak zrobić, aby adres pliku (get.php) nie był zawarty w pliku .js a w pliku html. Oto kod:
  1. <script type="text/javascript" language="javascript">
  2.   var http_request = false;
  3.   function makeRequest(url, parameters) {
  4.     http_request = false;
  5.      if (window.XMLHttpRequest) {
  6.         http_request = new XMLHttpRequest();
  7.         if (http_request.overrideMimeType) {
  8.            http_request.overrideMimeType('text/html');
  9.         }
  10.      } else if (window.ActiveXObject) {
  11.         try {
  12.            http_request = new ActiveXObject("Msxml2.XMLHTTP");
  13.         } catch (e) {
  14.            try {
  15.               http_request = new ActiveXObject("Microsoft.XMLHTTP");
  16.            } catch (e) {}
  17.         }
  18.      }
  19.      if (!http_request) {
  20.         alert('Cannot create XMLHTTP instance');
  21.         return false;
  22.      }
  23.      http_request.onreadystatechange = alertContents;
  24.      http_request.open('GET', url + parameters, true);
  25.      http_request.send(null);
  26.   }
  27.  
  28.   function alertContents() {
  29.      if (http_request.readyState == 4) {
  30.         if (http_request.status == 200) {
  31.            //alert(http_request.responseText);
  32.            result = http_request.responseText;
  33.            document.getElementById('myspan').innerHTML = result;            
  34.         } else {
  35.            alert('There was a problem with the request.');
  36.         }
  37.      }
  38.   }
  39.  
  40.   function get(obj) {
  41.      http_request = false;
  42.      var getstr = "?";
  43.      for (i=0; i<obj.childNodes.length; i++) {
  44.         if (obj.childNodes[i].tagName == "INPUT") {
  45.            if (obj.childNodes[i].type == "text") {
  46.               getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
  47.            }
  48.            if (obj.childNodes[i].type == "checkbox") {
  49.               if (obj.childNodes[i].checked) {
  50.                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
  51.               } else {
  52.                  getstr += obj.childNodes[i].name + "=&";
  53.               }
  54.            }
  55.            if (obj.childNodes[i].type == "radio") {
  56.               if (obj.childNodes[i].checked) {
  57.                  getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
  58.               }
  59.            }
  60.         }  
  61.         if (obj.childNodes[i].tagName == "SELECT") {
  62.            var sel = obj.childNodes[i];
  63.            getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
  64.         }
  65.         if (obj.childNodes[i].tagName == "TEXTAREA") {
  66.      getstr += "&hihi=" + encodeURI( document.getElementById("hihi").value ) ;
  67.      }
  68.      }
  69.      makeRequest('get.php', getstr);
  70.   }
  71. </script>


Plik html:
  1. <form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
  2.  
  3. <input type="checkbox" name="mycheck1" value="1" /> Wyrozniony <br /><br />
  4.  
  5. <textarea name="hihi" id="hihi"></textarea>
  6. <br>
  7. <input type="button" name="button" value="Submit"
  8. onclick="javascript:get(this.parentNode);">
  9.  
  10. </form>
  11.  
  12. <br><br>
  13. Pod spodem wyswietli sie plik get.php:<br>
  14. <span name="myspan" id="myspan"></span>


Chodzi o to, aby linijkę kodu:
  1. makeRequest('get.php', getstr);
zamienić w taki sposób, aby zamiast get.php była jakaś zmienna, a jej wartośc znajdowała by się tutaj:
  1. <input type="button" name="button" value="Submit"
  2. onclick="javascript:get(this.parentNode), 'tu adres pliku';">


Bardzo prosze o pomoc.
vokiel
Możesz pobierac atrybut jakiegos elementu, wartość pola ukrytego, cokolwiek.
np:
  1. <input type="hidden" id="url" name="url" value="get_me_too.php" />
  2. <input type="button" name="button" value="Submit" onclick="javascript:get(this.parentNode);">
  3.  
  4. // a tam pozniej w swoim js mozesz dac sprawdzanie url'a pod ktory wyslac
  5. var url = document.getElementById('url').value;
cafepl_com
no rzeczywiście, działa! dziękuję bardzo.
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.