Ich habe Probleme beim Ausführen von SQL über AJAX, wenn eine Dropdown-Box geändert wird und möchte, wenn möglich, einige Hilfe.Dropdown-Box zum Einfügen von Wert in MYSQL db OnChange mit AJAX und PHP
Background Info Ich habe einen Tageskalender mit der Erstellung, die in einem Fitnessstudio liefen alle Klassen zeigt beauftragt worden, der an seinem Maximum ist 5 x Klassen von 6 (30) Personen pro Stunde für 14 hours.I‘ M kein Profi und ich habe einen verschachtelten Weg um dieses Problem geschaffen, lass es mich wissen, wenn ich habe.
Ich habe es geschafft, die Ansicht zu erstellen, die aus 14 Spalten von 30 Dropdown-Boxen besteht (5 x Klassen von 6 pro Stunde für 14 Stunden). Jedes Dropdown-Feld fragt die Datenbank ab, und wenn sich ein Eintrag befindet, wird das Feld mit dem Namen des bookinguser ausgefüllt. Wenn keine Buchung gefunden wird, wird eine Drop-Down-Box erstellt, die die Mitglieder-Tabelle abfragt und alle Mitglieder des Fitness-Studios vorstellt, die diese Person hoffentlich bei der Buchung einbucht. - Hierin ist meine aktuelle Ausgabe!
Der Name jeder Dropdown-Box entspricht der Uhrzeit, der Gruppe und der Anzahl der Mitarbeiter, die ich an die JavaScript-Funktion und eventuell an die SQL-Anweisung übergeben möchte. Der Wert jeder Option entspricht der Mitglied-ID, die ebenfalls übergeben wird und alle Informationen enthält, die zum Erstellen des SQL benötigt werden.
Der Code, den ich
HTML bisher - von der PHP-generierten snipped Schleifen
<div id="results">
<div id="07" class="column">07:00<br/>
<div id="group1">
<select name="07:00-1-0" onchange="getda(this.value,this)">
<option value="none">---------------</option>
<option value="2">John Doe</option>
<option value="1">Joe Bloggs</option>
</select>
<select name="07:00-1-1" onchange="getda(this.value,this)">
<option value="none">---------------</option>
<option value="2">John Doe</option>
<option value="1">Joe Bloggs</option>
</select>
PHP
<?php
$mysqli = new mysqli("localhost", "root", "", "gym");
/* check connection */
if ($mysqli->connect_errno) {
printf("Connect failed: %s\n", $mysqli->connect_error);
exit();
}
function hyphenate($str) {
return implode("-", str_split($str, 2));
}
function getmembers($time,$group,$iteration)
{
$date=$_GET["date"];
$date=hyphenate($date);
$date = explode('-', $date);
$new_date = $date[2].'-'.$date[1].'-'.$date[0];
$mysqli = new mysqli("localhost", "root", "", "gym");
if ($iteration == 0){
$result = $mysqli->query("select members.memberid, members.firstname, members.lastname from bookings inner join members on bookings.memberid = members.memberid where bookings.date = '$new_date' and time = '$time' and bookings.groupnumber = '$group' order by bookings.bookingid ASC limit 1");
}
else {$result = $mysqli->query("select members.memberid, members.firstname, members.lastname from bookings inner join members on bookings.memberid = members.memberid where bookings.date = '$new_date' and time = '$time' and bookings.groupnumber = '$group' order by bookings.bookingid ASC limit 1,$iteration");
}
$rowcount=mysqli_num_rows($result);
if ($rowcount==$iteration && $iteration == 0)
{
$result = $mysqli->query("select firstname, lastname,memberid from members order by firstname ASC");
echo '<select name="'.$time.'-'.$group.'-'.$iteration.'" onchange="getda(this.value,this)"><option value="---------------">---------------</option>';
while ($row = $result->fetch_assoc()) {
unset($firstname, $lastname);
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$memberid = $row['memberid'];
echo '<option value="'.$memberid.'">'.$firstname . ' ' . $lastname .'</option>';
}
echo "</select>";
}
else if ($rowcount>=$iteration){
echo '<select name="'.$time.'-'.$group.'-'.$iteration.'" onchange="getda(this.value,this)">';
while ($row = $result->fetch_assoc()) {
unset($firstname, $lastname);
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$memberid = $row['memberid'];
echo '<option value="'.$memberid.'">'.$firstname . ' ' . $lastname .'</option><option value="cancel">Cancel</option>';
}
echo "</select>";
}
else{
$result = $mysqli->query("select firstname, lastname, memberid from members order by firstname ASC");
echo '<select name="'.$time.'-'.$group.'-'.$iteration.'" onchange="getda(this.value,this)"><option value="---------------">---------------</option>';
while ($row = $result->fetch_assoc()) {
unset($firstname, $lastname);
$firstname = $row['firstname'];
$lastname = $row['lastname'];
$memberid = $row['memberid'];
echo '<option value="'.$memberid.'">'.$firstname . ' ' . $lastname .'</option>';
}
echo "</select>";
}
}
?>
JS
function getda(id,booking){
$.ajax({
type: 'post',
url: 'samefile.php',
data: {
get_option:id
},
success: function (response) {
document.getElementById("result").innerHTML=response;
}
});
}
samefile.php
Die Konsole in Chrom sieht gut aus (unten), aber keine Datensätze eingefügt und die PHP-Warnung wird nicht angezeigt. Ich habe keine der Variablen an die SQL übergeben, als ich zuerst getestet habe, dass eine Abfrage ordnungsgemäß ausgeführt wurde
jquery.min.js: 4 XHR fertig geladen: POST "http://localhost/gym/samefile.php" .send @ jquery.min.js: 4n. extend.ajax @ jquery.min.js: 4getda @ cal.php date = 140416:? 42onchange @ cal.php date = 140416: 36ListPicker._handleMouseUp @ about: blank: 535
Ich habe die Klasse .dropdown auf alle Dropdown-Boxen hinzugefügt und im Code in die Klasse geändert, aber ich habe immer noch kein Glück. Ich habe auch die Änderungsparameter entfernt –