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:
Nun habe ich auch schon rausgefunden das das in php ungefähr so aussehen sollte:
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"
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"
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 167936
Url: https://administrator.de/contentid/167936
Ausgedruckt am: 16.11.2024 um 23:11 Uhr
3 Kommentare
Neuester Kommentar
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
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
Möglicherweise funktioniert's mit VB-Script:
Wobei die Werte in einer kleinen Schleife gesammelt und in die Variable Text (inkl. Trennzeichen und Zeilenschaltung) geschrieben werden.
Gruß Dieter
<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>
Gruß Dieter
Hallo,
Hier ist ein Beispiel ohne JavaScript:
default.html:
Die ganzen Daten werden jetzt an das PHP-Skript weitergeleitet und verarbeitet.
write.php:
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-
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-