Roadster: Seiteneingaben in externer Datei speichern nur mit JS?

Beitrag lesen

Aloha ;)

Hallo RIDER :)

Ein frohes Fest wünsche ich!

Eine Frage hätte ich dann doch noch - zu dem von dir geposteten PHP-Schnippsel. ;)

    $i = 0;  
  
    while (is_file($filename.$i)) {  
        $i++;  
    }  
  
    file_put_contents($filename.$i.'.txt',$content);

Der Sinn dieses Abschnitts erschließt sich mir nicht wirklich. Das sorgt in der geübten Praxis dafür, dass an den Dateinamen, den ich der Variable (filename) in der vorgeschalteten JavaScript-Funktion mit auf den Weg gebe, eine 0 drangehängt wird;

Führe ich die Funktion mit der selben Variablen für (filename) jedoch mehrmals aus, wird mitnichten jedesmal eine neue Datei angelegt mit ansteigender Zahl am Ende des Dateinamens, sondern es bleibt bei filename0 - nur das der Inhalt der Datei bei jedem Funktionsaufruf neu überschrieben wird!

Wenn aber nun bei gleichbleibendem Variablenwert für (filename) ohnehin immer nur der Inhalt der bestehenden Datei überschrieben wird, - warum dann überhaupt eine 0 an den Dateinamen dranhängen???

Du hattest mir ja mal für JavaScript den folgenden Code gepostet, damit ich meine dynamisch erstellten Seiten-Elemente auch dynamisch benennen kann:

var n=0;  
  
while(document.getElementById("divID"+n)!=null) {n++;}  
  
div.id="divID"+n;

Das funktioniert natürlich 1:1 nur bei document.elements, nicht bei Variablen-Benennungen, denn worauf sollte man bei einer Variablen in while(bedingung) referenzieren?

Also, wollte ich nun für jede Eingabe eine neue Datei erstellen, müsste ich entweder VOR der Übergabe der Variable für den Dateinamen an save(content,filename){/* ... */} mit einer irgendwie angepassten JS-Funktion wie der da oben aus "filename"; sowas wie "filename"+x; machen, oder es müsste die PHP-Funktion entsprechend angepasst werden, oder?

...und gemäß dem Fall, ich wollte die jeweiligen input/textarea-Einträge nacheinander in der SELBEN Datei speichern, müsste ich doch wohl sowas wie das hier vorschalten:

var request = new XMLHttpRequest();  
request.open("get","saves/save.txt");  
request.send();  
request.addEventListener("load", function (e) {  
   var text = e.target.responseText;  
});

und dann beim Senden:

var textAreaValue = textArea.value;  
  
var content = text + textAreaValue;  
  
save(content,filename);

oder wenigstens so ähnlich...?

Etwas Aufklärung wäre sehr willkommen! :)

PS: Ich nehme an, es gibt auch in PHP keinen Befehl, der in der Ausgabedatei einen Zeilenumbruch à la <br> erzeugt, oder?

var row1="In JS muss ja für jede Zeile ";  
  
var row2="ein neuer String angelegt werden... ";  
  
var row3="...leider!";
~~~ ;)  
  
Soweit,  
  
nochmals Dank und Gruß,  
  
Roadster.