Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON - Wert in Inputfeld ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • JSON - Wert in Inputfeld ausgeben

    Hallo zusammen,
    ich rufe mit JavaScript eine PHP Datei auf welche mir eine unterschiedliche Daten liefert.Mittels JSON kann ich so die Daten aus der PHP Datei gut formatieren. Nun möchte ich aber die id nicht wie die anderen Daten über ein DIV-Tag ausgeben sondern in einem Input feld. Der Code nun nochmal :

    PHP-Code:
             $datastring = array(
             
    "id"       => "$id"
             
    );
             
             echo 
    json_encode($datastring); 
    Code:
    getdata();
    
    setInterval("getdata()",1000 );
    
    function getdata()
    {
     if (xmlHttp) {
         xmlHttp.open('GET', 'getdata.php', true);
         xmlHttp.onreadystatechange = function () {
             if (xmlHttp.readyState == 4) {
    		 
    var obj = eval('(' + xmlHttp.responseText + ')');
    document.getElementById('id').innerHTML = obj.id;
    
             }
    		 
         };
         xmlHttp.send(null);
    	 
     }
    }
    Diese ID kann ich nun über einen DIV Tag ausgeben.

    HTML-Code:
    <div id="id" ></div>
    Jedoch will ich die ID nicht über einen DIV Tag ausgeben sondern in einem input-Feld als value.

    Dazu habe ich folgendes versucht:

    HTML-Code:
    <input type="hidden" id="id"  name="id" />
    Leider gibt er mir die ID nicht aus bzw. mein Inputfeld bleibt leer. Warum?

    lg

    vollmilch

  • #2
    Weil du nicht .innerHTML sondern .value verwenden solltest. Außerdem ist das ein hidden-Feld - klar, dass du das nicht siehst...

    Mit PHP hat das nix zu tun...
    Themenmoderation:
    [→] Verschoben von PHP Einsteiger
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      document.getElementById('id').value = obj.id;

      So funktioniert das aber auch nicht.

      Ja auch wenn ich ein textfeld draus mache ist kein Wert drin!

      Kommentar


      • #4
        Probier es mal so:
        Code:
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <html>
        	<head>
        		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        		<title>Getting JSON Data</title>
        		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        		<script>
        			var getData = function () {
        								
        				// get Request Object
        				var Request = null;
        				
        				try {
        					Request = new XMLHttpRequest();
        				} catch (e) {
        					try {
        						Request = new ActiveXObject("Msxml2.XMLHTTP");
        					} catch (e) {
        						try {
        							Request = new ActiveXObject("Microsoft.XMLHTTP")
        						} catch (e) {
        							throw {error: 'Request is null'};
        						}
        					}
        				}
        				
        				var insertData = function (inputObject) {
        					console.log(inputObject);
        					document.getElementById('container').innerHTML = inputObject.id;
        					document.getElementById('textInput').value = inputObject.id;
        				};
        								
        				var handleRequest = function () {
        					
        					switch (Request.readyState) {
        						case 4:
        							if(Request.status !== 200) {
        								alert('Es ist ein Fehler aufgetreten: \n' + Request.status);
        							} else {
        								var JsonObject = eval('(' + Request.responseText + ')');
        								insertData(JsonObject);
        							}
        						break;
        							
        						default:
        							return false;
        						break;
        					}
        				};
        								
        				// open GET request to backend
        				Request.open("GET", 'backend.php', true);
        				
        				Request.onreadystatechange = handleRequest;
        				
        				Request.send(null);
        			};
        			
        			$(function () {
        				$('#getData').click(function () {
        					getData();
        					return false;
        				});
        			});
        		</script>
        	</head>
        	<body>
        		<button id="getData" >Get Data!</button>
        		<div id="container">The loaded Data will be displayed here.</div>
        		<form id="myForm">
        			<input type="text" id="textInput" value="this will change as well" />
        		</form>
        	</body>
        </html>
        backend.php
        PHP-Code:
        <?php

        $datastring 
        = array("id" => "Data from the backend!");

        echo 
        json_encode($datastring);
        [FONT="Book Antiqua"][I]"Nobody is as smart as everybody" - Kevin Kelly[/I]
        — The best things in life aren't things[/FONT]

        Kommentar

        Lädt...
        X