script42: Variable an schon geladenes JQuery übertragen

Beitrag lesen

Hallo, liebe Forumsmitglieder,

ich bin Programmieranfängerin und versuche gerade, die folgende Situation zu lösen:

Für die Auftragszuweisung von Fototerminen habe ich in einem Formular ein dynamisch generiertes Auswahlfeld (<select>) von Fotografen, die in einem bestimmten Umkreis des Auftragsortes wohnen und daher für den Auftrag in Frage kommen.

//Abfrage aller Fotografen, die im ermittelten PLZ-Bereich wohnen und Präsentation in Auswahlmenü: $sqlselectFg = "SELECT FotografenID, FotografVorname, FotografNachname FROM tbl_Fotografen WHERE (Aktivitaet = 'aktiv') AND (FotografPLZ IN $plzliste);"; $resultFg = mysqli_query($conn, $sqlselectFg); $resultCheckFg = mysqli_num_rows($resultFg); echo '<select class="form-control select" name="Fotografen" id="Fotografen">'; $fgliste = array(); while ($rowFg = mysqli_fetch_assoc($resultFg)) { $fgliste[]=$rowFg['FotografenID']; echo '<option value="'.$rowFg['FotografenID'].'">'.$rowFg['FotografenID'].' - '.$rowFg['FotografVorname'].' '.$rowFg['FotografNachname'].'</option>'; } echo '</select>'; ?>

Von diesen (meist 2-3) Fotografen werden in der Datenbank alle Termine abgefragt, für die diese Fotografen dieses Jahr schon gebucht ist und über PHP in ein Array geschrieben. Dieses Array lasse ich mir dann als JS-Array echoen:

<script> //Umschreiben der PHP-Arrays ${"allefototage".$fid}[] in Javascript-Arrays $disabledDates[][]: var $disabledDates = []; <?php foreach($fgliste as $fid) { echo '$disabledDates['.$fid.'] = ['; if(!empty(${"allefototage".$fid})){ foreach(${"allefototage".$fid} as $ft) { echo "'".$ft."', "; } } echo '] ;'; } ?>

Dem Anwender soll nun in einem Eingabefeld ein Kalender präsentiert werden, in dem die schon belegten Tage ausgeblendet sind. Das möchte ich über den JQuery-Kalender realisieren:

$('#datepicker<?php echo $notizzahl;?>').datepicker({ language: "de", startDate: "+0d", daysOfWeekDisabled: "0,6", autoclose: true, todayHighlight: true, datesDisabled: $disabledDates[fid], toggleActive: true });

Mein Problem ist jetzt, dass ich nicht weiß, wie ich die Variable fid (FotografenID aus dem Array, ausgewählt in <select>) in den Value $disabledDates[fid] hineinbringe, nachdem das JQuery schon geladen ist.

Ich habe es probiert mit:

document.getElementById("Fotografen").addEventListener('change', selectOption, false); function selectOption() { var fotografenID = this.options[this.selectedIndex].value; return fotografenID; } var fid = fotografenID;

Doch lädt der Datepicker deshalb ja noch lange nicht die Variable erneut. Selbst, wenn ich den Datepicker in die Funktion selectOption mit hineintue, geht es nicht. Ich gehe davon aus, dass die Variable auch hier schon vorher verarbeitet wird.

Jetzt habe ich gelesen, dass ich per AJAX eine Variable an PHP übergeben kann und könnte natürlich nun in einen zweiten File die Übertragung per POST in den Datepicker machen und diese Daten dann per AJAX laden. Das erscheint mir aber sehr "von hinten durch die Brust ins Auge" und ich wollte fragen, ob es da nicht eine viel einfachere Möglichkeit gibt.

Danke für Eure Hilfe, Kerstin

Akzeptierte Antworten zum Thema: