Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]Jak załadować wartości do pola tekstowego?
Forum PHP.pl > Forum > Przedszkole
cent4
Jak załadować wartości z pliku zewnętrznego do pola tekstowego?
Do diva działa prawidłowo:
  1. <div id="trzy">
  2. </div>
  3. ...
  4. $("#trzy").load("plik.php?jeden="+s1+"&dwa="+s2);


Ale jak:
$("#trzy").load("plik.php?jeden="+s1+"&dwa="+s2);
Załadować do pola:
<input type="text" id="trzy">
gargamel
Nie poprzez funkcję load.
Skorzystaj np z getJSON()
kudlatypawelek
Możesz też użyć "pełnego" AJAXa z jQuery i w funcji anonimowej wydłubać to co zwraca plik php i za pomocą .val(data) ustawić wartość inputa. http://api.jquery.com/jQuery.ajax/
cent4
A jakieś szybkie gotowe rozwiązanie :-) - może przykład...

Czy ktoś może mi to wytłumaczyć jak 7-dmio latkowi...
Bo nie qumam tego jSON'a ;-(
b4rt3kk
Prosze bardzo, kod js do tworzenia nowego obiektu w zależności od przeglądarki i obsługi otwieranego pliku, w wersji uniwersalnej do szerokiego zastosowania (metoda GET):

  1. function getXMLHttpRequestObject()
  2. {
  3.  
  4. var wersjeMSXML = new Array(
  5. "MSXML2.XMLHTTP.6.0",
  6. "MSXML2.XMLHTTP.5.0",
  7. "MSXML2.XMLHTTP.4.0",
  8. "MSXML2.XMLHTTP.3.0",
  9. "MSXML2.XMLHTTP",
  10. "Microsoft.XMLHTTP"
  11. );
  12.  
  13. try {
  14. return new XMLHttpRequest();
  15. }
  16. catch(e) {
  17. for (var indeks in wersjeMSXML) {
  18. try {
  19. return new ActiveXObject(wersjeMSXML[indeks]);
  20. }
  21. catch(e) {
  22. }
  23. }
  24. return null;
  25. }
  26. }
  27.  
  28.  
  29. function startGETRequest(url, onComplete, onEnd)
  30. {
  31.  
  32. var XMLHttpRequestObject = getXMLHttpRequestObject();
  33.  
  34. if (XMLHttpRequestObject) {
  35. XMLHttpRequestObject.open("GET", url);
  36. XMLHttpRequestObject.onreadystatechange = function()
  37. {
  38. if (XMLHttpRequestObject.readyState == 4) {
  39. if (XMLHttpRequestObject.status == 200) {
  40. var responseXML = XMLHttpRequestObject.responseXML;
  41. var responseText = XMLHttpRequestObject.responseText;
  42. onComplete(responseText, responseXML);
  43. }
  44. delete XMLHttpRequestObject;
  45. XMLHttpRequestObject = null;
  46. onEnd();
  47. }
  48. }
  49. XMLHttpRequestObject.send(null);
  50. }
  51.  
  52. }


onComplete i onEnd są funkcjami obsługującymi akcje które mają nastąpić po przeczytaniu i zakończeniu czytania pliku. Natomiast funkcja startRequest jest wywowyłana przy konkretnej akcji, np kliknięciu przycisku.

  1. function startRequest()
  2. {
  3. var url = "dane.txt";
  4. startGETRequest(url, onComplete, onEnd);
  5. }
  6.  
  7. function onComplete(responseText, responseXML)
  8. {
  9. var trzy = document.getElementById("trzy");
  10. trzy.value = responseText;
  11. }
  12.  
  13. function onEnd()
  14. {
  15. }
  16.  


W miejsce zmiennej url wstawiasz ścieżkę do pliku który chcesz odczytać.
Przykładowy kod HTML stronki, nie dodaje definicji i funkcji js, bo to oczywista sprawa.

  1. <div>
  2. <input type="button" onclick="startRequest();">
  3. <input type="text" id="trzy" />
  4. </div>


Po kliknięciu przycisku pole input o id "trzy" będzie miało zawartość wczytanego pliku tekstowego. Do startRequest możesz dodać argument, np. url do pliku, żeby nie kopiować w kółko definicji funkcji.
cent4
Dzięki wielkie ale pytanie:
jak przekazać do pliku 2 wartości: $("#trzy").load("plik.php?jeden="+s1+"&dwa="+s2);

Lepiej byłoby przez ten jSON? - jaka to różnica między tym xml?
I jak przekazać 2 wybrane wartości do pliku php, żeby wyciągnąć trzecią...?
b4rt3kk
Wartości przekazujesz w ten sposób: plik.php?wart1=costam&?wart2=costam2&?wart3=costam3 itd, po prostu zapomniałeś znaku zapytania po &.

A tą trzecią wartość możesz przekazać poprzez textResponse tak jak opisałem to wyżej, czyli np. w pliku php jest taki kod:

  1. echo $wartosc = $_GET['wart1'] + $_GET['wart1'];


wtedy

textResponse = $wartosc
cent4
A nie prościej:

$.get("test.php", function(data){
$('#trzy').val(data)
});

i działa ok ;-)
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.