Hallo zusammen,
ich möchte Daten einer HTML-Form an den Server schicken...ich habe das zunächst ganz "klassisch" mit Submitt-Button und PHP realisiert...in etwa so...
<form class="chronjob" action="chronjobs.php" method="get" >
<input type="submit" name="submitLoad" value="Load">
<input type="text" name="name" id="name" required value="<?php echo($chronjobConfig1->name)?>">
</form>
Allerdings stieß ich da auf ein Problem...als Abhilfe wurde mir empfohlen, die Aufgabenstellung mal mit AJAX anzugehen...das schaut grundsätzlich auch gar nicht mal so schlecht aus...allerdings stehe ich gerade vor einer Unwissenheit...
Beim "klassischen" Weg wird der URL-String (z.B: chronjobs.php?submitLoad=value1&name=value2) quasi "automatisch" erstellt. Bei der Verwendung von AJAX muss der URL-String "programmatisch" erstellt werden (siehe myAjax.open(...) im Code-Listing).
Bei einem einfachen Input-Element wie "Text" oder "datetime-local" habe ich das auch noch geschafft...aber bei den Input-Elementen "multiple select/option" und "checkbox" habe ich so meine Probleme...ich bekomme das einfach nicht hin...wie macht man das?
Hier ist mein aktuelles (vereinfachtes) Codelisting...
function funcSave() {
myAjax = new XMLHttpRequest();
myAjax.onreadystatechange=function(){
if (myAjax.readyState==4 && myAjax.status==200){
messageToServer('updateChronjobConfig.fe');
location.reload();
}
};
myAjax.open("GET","chronjobSave.php?name=" + document.getElementById("name").value +
"&functions[]=" + document.getElementById("functions").selectedOptions + // Funktioniert nicht
"&start=" + document.getElementById("start").value, true);
myAjax.send();
}
<form class="chronjob" name="chronjobConfig">
Name:
<input type="text" name="name" id="name" required
value="<?php echo($chronjobConfig1->name)?>">
<br>
Start:
<input type="datetime-local" name="start" id="start"
value=<?php echo($chronjobConfig1->start)?>>
<br>
Repeating:
<input type="checkbox" name="repeateMon" id="repeateMon" value="Mon"
<?php echo($chronjobConfig1->isRepeated("Mon"))?>> Mon
<br>
<input type="checkbox" name="repeateTue" id="repeateTue" value="Tue"
<?php echo($chronjobConfig1->isRepeated("Tue"))?>> Tue
<br>
<input type="checkbox" name="repeateWed" id="repeateWed" value="Wed"
<?php echo($chronjobConfig1->isRepeated("Wed"))?>> Wed
<br>
<input type="checkbox" name="repeateThu" id="repeateThu" value="Thu"
<?php echo($chronjobConfig1->isRepeated("Thu"))?>> Thu
<br>
<input type="checkbox" name="repeateFri" id="repeateFri" value="Fri"
<?php echo($chronjobConfig1->isRepeated("Fri"))?>> Fri
<br>
<input type="checkbox" name="repeateSat" id="repeateSat" value="Sat"
<?php echo($chronjobConfig1->isRepeated("Sat"))?>> Sat
<br>
<input type="checkbox" name="repeateSun" id="repeateSun" value="Sun"
<?php echo($chronjobConfig1->isRepeated("Sun"))?>> Sun
<br>
<br>
Functions:
<select name="functions[]" id="functions" multiple>
<?php
foreach ( $chronjobConfig1->availableFunctions as $func ) {
// Hier wird ausgewertet, welche von den verfügbaren Funktionen ausgewählt sind
$key = array_search ( $func, $chronjobConfig1->selectedFunctions );
if ($key !== False) {
$isSelected = "selected";
} else {
$isSelected = "";
}
echo ("<option name=\"$func\" value=\"$func\" $isSelected>$func</option>\n");
}
?>
</select>
<input type="button" name="submitSave" value="Save" onclick="return funcSave()">
</form>
Alles anzeigen