Ergebnis 1 bis 6 von 6
  1. #1
    MatzeWagner ist offline Grünschnabel
    registriert
    15-11-2012
    Beiträge
    3

    [JSON] - Objekt in Datei speichern

    Guten Tag,

    seit gestern überlege, weshalb meine erstellte .json leer ist - vielleicht kann mir jemand behilflich sein?
    Das Objekt scheint ja bei der .php Datei anzukommen, nur das befüllen der Datei mit dem Inhalt klappt nicht.
    Entweder es wird nur [] oder gar nichts in die Datei geschrieben...




    Javaschript

    Code:
    function jsonParameterSpeichern(){
        var jsonObj = $.fn.jsonParameterErzeugen();
        var postArray = {
            json:jsonObj
        };    
        $.ajax({
            type        :   'POST',
            url         :   "jsonSpeichern.php",
            data        :   postArray,
            beforeSend  :   function(){
                $("#ajax-panel").html('<img src="ajax-loader.gif"></img>')
            },
            success     :   function(data){
                
            $("body").append("<iframe src='http://localhost/JSLernen/jsonSpeichern.php' style='display: none;' ></iframe>");
                
            },
            error       :   function(){
                alert("Fehler");
            }
        });
    };



    PHP
    PHP-Code:
    $jsonObj $_POST;
    $dateiname "test123456.json";
    $fh fopen($dateiname'w');
    $input json_encode($jsonObj);
    fwrite($fh$input);
    fclose($fh);
    readfile($dateiname);
    header("Content-Type: application/json");
    header("Content-Disposition: attachment; filename=1.json");
    header("Content-Length: " filesize($dateiname)); 



    Die Header
    Antwort
    Connection Keep-Alive
    Content-Disposition attachment; filename=1.json
    Content-Length 261
    Content-Type application/json
    Date Thu, 15 Nov 2012 15:40:52 GMT
    Keep-Alive timeout=5, max=100
    Server Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
    X-Powered-By PHP/5.3.8


    Anfrage
    Accept */*
    Accept-Encoding gzip, deflate
    Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
    Cache-Control no-cache
    Connection keep-alive
    Content-Length 597
    Content-Type application/x-www-form-urlencoded; charset=UTF-8
    Host localhost
    Pragma no-cache
    Referer http://localhost/JSLernen/index.html
    User-Agent Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0
    X-Requested-With XMLHttpRequest




    Die Postdaten


    json[auswahl] weibull
    json[test2][0][name] neu_1
    json[test2][0][value] 6
    json[test2][1][name] neu_2
    json[test2][1][value] 55
    json[test2][2][name] neu_3
    json[test2][2][value] 3
    json[test2][3][name] neu_4
    json[test2][3][value] 4
    json[test][0][name] t1
    json[test][0][value] 1
    json[test][1][name] t2
    json[test][1][value] 2
    json[test][2][name] t3
    json[test][2][value] 3
    json[test][3][name] t4
    json[test][3][value] 4
    json[test][4][name] t5
    json[test][4][value] erster




    Die Antwort

    {"json":{"auswahl":"weibull","test":[{"name":"t1","value":"1"},{"name":"t2","value":"2"},{"name":"t3","value":"3"},{"name":"t4","value":" 4"},{"name":"t5","value":"erster"}],"test2":[{"name":"neu_1","value":"6"},{"name":"neu_2","value":"55"},{"name":"neu_3","value":"3"},{"name":"neu _4","value":"4"}]}}
    Geändert von MatzeWagner (15-11-2012 um 17:02 Uhr)

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.667

    AW: [JSON] - Objekt in Datei speichern

    Mit dem zweiten Aufruf der PHP-Datei im <iframe> leerst du die Datei einfach wieder, da dabei keine POST-Daten übergeben werden.

  3. #3
    MatzeWagner ist offline Grünschnabel
    registriert
    15-11-2012
    Beiträge
    3

    AW: [JSON] - Objekt in Datei speichern

    Hallo kkapsner,

    vielen Dank für die Hilfe. Bin zwar noch ganz frisch auf dem Gebiet..nichtsdestotrotz macht es natürlich keinen Sinn die PHP ohne Postdaten aufzurufen...

    Hoffentlich verstehe ich es richtig, dass php das File erstellt und dem Browser sagt, dass er gleich ne Datei im Json Format erhält.
    Müsste eigentlich stimmen, denn wenn ich alert(data) eingebe, wird mir das Json-File angezeigt.
    Von daher kann es jetzt nur noch daran liegen, dass ich zu unfähig bin den Download zu erzeugen.
    Es müsste doch funktionieren, wenn ich JS sage wo er die erzeugte Datei findet oder?
    Wenn ja, könnte mir das jmd. kurz erklären?

    Gruß, Matze

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.667

    AW: [JSON] - Objekt in Datei speichern

    Du könntest auch einfach im PHP zwischen einem GET und eine POST Request unterscheiden und bei GET die Datei ausliefern und bei POST die Datei schreiben...

  5. #5
    MatzeWagner ist offline Grünschnabel
    registriert
    15-11-2012
    Beiträge
    3

    AW: [JSON] - Objekt in Datei speichern

    Danke kkapsner

    Zitat Zitat von kkapsner Beitrag anzeigen
    Du könntest auch einfach im PHP zwischen einem GET und eine POST Request unterscheiden und bei GET die Datei ausliefern und bei POST die Datei schreiben...
    Habe deinen Tipp beherzigt und folgendermaßen umgesetzt (der filename wird später natürlich dynamisch gebildet):

    PHP-Code:
    $dateiname "test12345.json";

    if (isset(
    $_POST) && count($_GET)==0) {
        
    $jsonObj $_POST;
        
    $fh fopen($dateiname'w');
        
    $input json_encode($jsonObj);
        
    fwrite($fh$input);
        
    fclose($fh);
    }
    if (
    count($_POST)==&& isset($_GET)) {
        
    readfile($dateiname);
        
    header("Content-Type: application/json");
        
    header("Content-Disposition: attachment; filename=settings.json");
        
    header("Content-Length: " filesize($dateiname));

    tut genau was ich wollte, vielen Dank!

    Gruß, Matze

  6. #6
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.667

    AW: [JSON] - Objekt in Datei speichern

    PHP: $_SERVER - Manual -> "REQUEST_METHOD" ist da besser geeignet, als dein Test, welche Methode verwendet wurde...

Ähnliche Themen

  1. JSON Objekt zu Javascript-Array?
    Von Veyrne im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 14-10-2011, 14:59
  2. Array in Json-Objekt einfügen
    Von freakyBOi im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 29-05-2011, 20:31
  3. JSON Objekt von Googlemaps verarbeiten (NEULING)
    Von Aticus im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 10-11-2010, 12:40
  4. Objekt per JavaScript in JSON-String umwandeln
    Von orator im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 21-02-2010, 15:24
  5. Array/Objekt in JSON string umwandeln
    Von Stefan125 im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 02-10-2009, 14:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •