erik87
Goto Top

In Datei speichern

Hallo,

ich habe mir eine kleine HTML aufgebaut mit einem Formular. Ein Javascript wertet mir darin dieses Formular aus und erstellt einen String, den ich gerne in eine Datei speichern möchte. Nun habe ich ein weilchen gegoogelt und rausgefunden das das mit HTML und Javascript nicht geht, da dies auf dem Anwenderpc und nicht auf dem Server ausgeführt wird.

Mein Javascript:

function Neu_onclick() {
//Tabelle auslesen
var Line1 = document.getElementById("Stadt1").value + ";" + document.getElementById("SL1").value + ";" + document.getElementById("RE1").value + ";" + document.getElementById("SW1").value + ";" + document.getElementById("BO1").value + ";" + document.getElementById("HO1").value + ";" + document.getElementById("ST1").value + ";" + document.getElementById("FS1").value + ";" + document.getElementById("BI1").value  
var Line2 = document.getElementById("Stadt2").value + ";" + document.getElementById("SL2").value + ";" + document.getElementById("RE2").value + ";" + document.getElementById("SW2").value + ";" + document.getElementById("BO2").value + ";" + document.getElementById("HO2").value + ";" + document.getElementById("ST2").value + ";" + document.getElementById("FS2").value + ";" + document.getElementById("BI2").value  
var Line3 = document.getElementById("Stadt3").value + ";" + document.getElementById("SL3").value + ";" + document.getElementById("RE3").value + ";" + document.getElementById("SW3").value + ";" + document.getElementById("BO3").value + ";" + document.getElementById("HO3").value + ";" + document.getElementById("ST3").value + ";" + document.getElementById("FS3").value + ";" + document.getElementById("BI3").value  
var Line4 = document.getElementById("Stadt4").value + ";" + document.getElementById("SL4").value + ";" + document.getElementById("RE4").value + ";" + document.getElementById("SW4").value + ";" + document.getElementById("BO4").value + ";" + document.getElementById("HO4").value + ";" + document.getElementById("ST4").value + ";" + document.getElementById("FS4").value + ";" + document.getElementById("BI4").value  
var Line5 = document.getElementById("Stadt5").value + ";" + document.getElementById("SL5").value + ";" + document.getElementById("RE5").value + ";" + document.getElementById("SW5").value + ";" + document.getElementById("BO5").value + ";" + document.getElementById("HO5").value + ";" + document.getElementById("ST5").value + ";" + document.getElementById("FS5").value + ";" + document.getElementById("BI5").value  
var Line6 = document.getElementById("Stadt6").value + ";" + document.getElementById("SL6").value + ";" + document.getElementById("RE6").value + ";" + document.getElementById("SW6").value + ";" + document.getElementById("BO6").value + ";" + document.getElementById("HO6").value + ";" + document.getElementById("ST6").value + ";" + document.getElementById("FS6").value + ";" + document.getElementById("BI6").value  
var Line7 = document.getElementById("Stadt7").value + ";" + document.getElementById("SL7").value + ";" + document.getElementById("RE7").value + ";" + document.getElementById("SW7").value + ";" + document.getElementById("BO7").value + ";" + document.getElementById("HO7").value + ";" + document.getElementById("ST7").value + ";" + document.getElementById("FS7").value + ";" + document.getElementById("BI7").value  
var Line8 = document.getElementById("Stadt8").value + ";" + document.getElementById("SL8").value + ";" + document.getElementById("RE8").value + ";" + document.getElementById("SW8").value + ";" + document.getElementById("BO8").value + ";" + document.getElementById("HO8").value + ";" + document.getElementById("ST8").value + ";" + document.getElementById("FS8").value + ";" + document.getElementById("BI8").value  
var Line9 = document.getElementById("Stadt9").value + ";" + document.getElementById("SL9").value + ";" + document.getElementById("RE9").value + ";" + document.getElementById("SW9").value + ";" + document.getElementById("BO9").value + ";" + document.getElementById("HO9").value + ";" + document.getElementById("ST9").value + ";" + document.getElementById("FS9").value + ";" + document.getElementById("BI9").value  
var Line10 = document.getElementById("Stadt10").value + ";" + document.getElementById("SL10").value + ";" + document.getElementById("RE10").value + ";" + document.getElementById("SW10").value + ";" + document.getElementById("BO10").value + ";" + document.getElementById("HO10").value + ";" + document.getElementById("ST10").value + ";" + document.getElementById("FS10").value + ";" + document.getElementById("BI10").value  
var newline 
// String erstellen
//Spielername vorhanden?
var Spvorh = document.getElementById("Spieler").value  
if  (Spvorh == "") {  
    alert("Bitte Spielernamen eingeben")  
    }
else
    {
    var SaveString = Line1 + "\n" + Line2 + "\n" + Line3 + "\n" + Line4 + "\n" + Line5 + "\n" + Line6 + "\n" + Line7 + "\n" + Line8 + "\n" + Line9 + "\n" + Line10  
    document.getElementById("TB").value = SaveString  
    // in Datei speichern
    // ???
    }
}
// ]]>
</script>

Nun habe ich auch schon rausgefunden das das in php ungefähr so aussehen sollte:

<?php
$datei = fopen('Test.txt', w);  
fwrite($datei, 'test');  
fclose($datei);
?>

Jetzt weiß ich nur nicht wie ich den String "SaveString" in die php-Datei "write.php" bekomme, wie ich den php-code ausführe und ob das dann so einfach funktioniert.

Muss die Datei "Test.txt" vorhanden sein? Ich würde gerne für jeden Spieler der sich dort einträgt eine extra Datei anlegen. Wie muss die Dateistruktur aufgebaut sein oder muss ich mit permanenten Adressen arbeiten?


Zur Info, ich programmiere mit Visual Studio 2008. Das javascript befindet sich in der Datei "default.html" und die php im gleichen Ordner namens "write.php"

Content-ID: 167936

Url: https://administrator.de/contentid/167936

Ausgedruckt am: 16.11.2024 um 23:11 Uhr

StefanKittel
StefanKittel 13.06.2011 um 18:58:37 Uhr
Goto Top
Hallo,
google, 2 Sekunden: http://www.phpbox.de/php_tutorials/formularversenden1.php

Besser wäre es eh das ganze in einer MySQL Datenbank zu speichern.
Der Aufwand ist gleich und man vermeidet auch Problem beim gleichzeitigem Zugriff von 2 Benutzern.

Stefan
76109
76109 13.06.2011 um 20:18:12 Uhr
Goto Top
Möglicherweise funktioniert's mit VB-Script:
<SCRIPT Language="VBScript">  
    Const Von = 1
    Const Bis = 10
    Const Path = "E:\Test\"  
    
    Sub Neu_onclick()
        Dim Fso, File, ById, Token, Text, i, c
        
        ById = Array("Stadt", "SL", "RE", "SW", "BO", "HO", "ST", "FS", "BI")  
        
        ReDim Token(UBound(ById))

        For i = Von To Bis
            For c = 0 To UBound(ById)
                Token(c) = document.getElementById(ById(c) & i).Value
            Next
            
            Text = Text & Join(Token, ";") & vbCrLf  
        Next

        Spieler = document.getElementById("Spieler").Value  

        If Spieler = "" Then  
            MsgBox "Bitte Spielernamen eingeben:", ,"Spieler..."  
        Else
            document.getElementById("TB").Value = Text  
            Set Fso = CreateObject("Scripting.FileSystemObject")  
            Set File = Fso.CreateTextFile(Path & Spieler & ".txt"):  File.Write Text:  File.Close  
        End If
    End Sub
</SCRIPT>
Wobei die Werte in einer kleinen Schleife gesammelt und in die Variable Text (inkl. Trennzeichen und Zeilenschaltung) geschrieben werden.

Gruß Dieter
EinTyp
EinTyp 17.06.2011 um 18:14:28 Uhr
Goto Top
Hallo,

Hier ist ein Beispiel ohne JavaScript:

default.html:
<form action="write.php" method="POST">  
  <!--
  hier drin hast du dein ganzes Formular
  alle input-Tags haben jetzt auch ein name-Attribut, welches dem id-Attribut gleicht
  zB aus <input type="text" id="Stadt1" /> 
  wird <input type="text" id="Stadt1" name="Stadt1" /> 
  -->
  <input type="submit" value="Abschicken" /> <!-- mit einem Submit-Button -->  
</form>

Die ganzen Daten werden jetzt an das PHP-Skript weitergeleitet und verarbeitet.

write.php:
$line1 = $_POST['Stadt1'].";".$_POST['SL1'].";".$_POST['RE1'].";".$_POST['SW1'].";".$_POST['BO1'].";".$_POST['HO1'].";".$_POST['ST1'].";".$_POST['FS1'].";".$_POST['BI1'];  
$line2 = $_POST['Stadt2'].";".$_POST['SL2'].";".$_POST['RE2'].";".$_POST['SW2'].";".$_POST['BO2'].";".$_POST['HO2'].";".$_POST['ST2'].";".$_POST['FS2'].";".$_POST['BI2'];  
$line3 = $_POST['Stadt3'].";".$_POST['SL3'].";".$_POST['RE3'].";".$_POST['SW3'].";".$_POST['BO3'].";".$_POST['HO3'].";".$_POST['ST3'].";".$_POST['FS3'].";".$_POST['BI3'];  
$line4 = $_POST['Stadt4'].";".$_POST['SL4'].";".$_POST['RE4'].";".$_POST['SW4'].";".$_POST['BO4'].";".$_POST['HO4'].";".$_POST['ST4'].";".$_POST['FS4'].";".$_POST['BI4'];  
$line5 = $_POST['Stadt5'].";".$_POST['SL5'].";".$_POST['RE5'].";".$_POST['SW5'].";".$_POST['BO5'].";".$_POST['HO5'].";".$_POST['ST5'].";".$_POST['FS5'].";".$_POST['BI5'];  
$line6 = $_POST['Stadt6'].";".$_POST['SL6'].";".$_POST['RE6'].";".$_POST['SW6'].";".$_POST['BO6'].";".$_POST['HO6'].";".$_POST['ST6'].";".$_POST['FS6'].";".$_POST['BI6'];  
$line7 = $_POST['Stadt7'].";".$_POST['SL7'].";".$_POST['RE7'].";".$_POST['SW7'].";".$_POST['BO7'].";".$_POST['HO7'].";".$_POST['ST7'].";".$_POST['FS7'].";".$_POST['BI7'];  
$line8 = $_POST['Stadt8'].";".$_POST['SL8'].";".$_POST['RE8'].";".$_POST['SW8'].";".$_POST['BO8'].";".$_POST['HO8'].";".$_POST['ST8'].";".$_POST['FS8'].";".$_POST['BI8'];  
$line9 = $_POST['Stadt9'].";".$_POST['SL9'].";".$_POST['RE9'].";".$_POST['SW9'].";".$_POST['BO9'].";".$_POST['HO9'].";".$_POST['ST9'].";".$_POST['FS9'].";".$_POST['BI9'];  
$line10 = $_POST['Stadt10'].";".$_POST['SL10'].";".$_POST['RE10'].";".$_POST['SW10'].";".$_POST['BO10'].";".$_POST['HO10'].";".$_POST['ST10'].";".$_POST['FS10'].";".$_POST['BI10'];  
$spieler = $_POST['Spieler'];  

// Es wird für jeden Spieler eine Datei angelegt in /Spieler/<Spieler-Name>.txt
//Der Ordner "Spieler" muss erstellt werden 
$datei = fopen("/Spieler/".$spieler.".txt", "w"); // Datei wird automatisch erzeugt  
fwrite($datei, "$line1\n$line2\n$line3\n$line4\n$line5\n$line6\n$line7\n$line8\n$line9\n$line10\n");  
fclose($datei);

Aber ich muss StefanKittel Recht geben, dass das ganze mit Hilfe einer Datenbank viel praktischer handzuhaben ist.
Auf Nachfrage werde ich auch ein PHP-Skript schreiben, welches mit der Datenbank arbeitet.

-eintyp-