Ich habe diese Ajax-Funktion gebaut, wo ich zwei Felder in einer Datenbank aktualisieren möchte, wenn der Benutzer sie ändern möchte, habe ich diesen Code, wo ich Zimmer drucken (Schulaufgabe) mit ihren aktuellen Informationen, ID, etc.:Senden von Werten durch Ajax, geschieht nichts in SQL
<?php
include('php/connect.php');
$chquery = "SELECT * FROM rooms";
$chresult = mysqli_query($conn, $chquery);
while($chrow = mysqli_fetch_array($chresult)){
echo "<div class='edit_roomRow'>";
echo "<h1> Rum " . $chrow['ID'] . "</h1>";
echo "<form>";
echo "Rumsnummer:<br> <input id='c-roomnumber' type='text' value = '" . $chrow['ID'] . "' placeholder='" . $chrow['ID'] . "'><br>";
echo "Beskrivning:<br> <input id='c-description' type='text' value = '" . $chrow['Description'] . "'placeholder='" . $chrow['Description'] . "'>";
echo "</form>";
echo "<br>";
echo "</div>";
echo "<div class='btn btn-warning change-btn' data-value='". $chrow['ID'] . "'style='float: right; margin-top: 100px;'>Ändra</div>";
echo "<hr/>";
}
mysqli_free_result($chresult);
mysqli_close($conn);
?>
Hier ist nichts falsch und alle Werte scheinen korrekt. hier ist dann die Ajax, wo ich die Informationen aus diesem Formular senden:
<script type="text/javascript">
$(".change-btn").click(function(){
var id = $(this).attr("data-value");
var description = $("#c-description").val();
var roomnumber = $("#c-roomnumber").val();
//Call to ajax
$.ajax({
method:"GET",
url: "php/changepost.php",
data:{ id: id, description: description, roomnumber: roomnumber },
success: function(){
$(this).val("");
$("#c-description").val("");
$("#c-roomnumber").val("");
//Reload specific div with rooms, avoid full page reload
$(".changerooms").load(location.href + " .changerooms");
}
})
})
</script>
Um sicherzustellen, dass alle Werte aus der PHP gesendet werden (korrekte ID aus der Taste, Beschreibung & Zimmernummer) i alarmierte sie am Ende der Ajax-Datei sind alle Werte korrekt.
Dann hier versuche ich, die DB mit den neuen Werten zu aktualisieren:
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include('connect.php');
if(isset($_GET['id'])){
$changequery = "UPDATE rooms SET ID = $_GET['roomnumber'], Description = $_GET['description'] WHERE ID = $_GET['id']";
//Perform $changequery
mysqli_query($conn, $changequery);
}
mysqli_close($conn);
?>
Ich kann nichts sehen, die weg hier ist, aber ich bin ein bisschen neu mit AJAX meist, wenn Sie also etwas sehen, dass scheint falsch, ich wäre froh mit jeder Hilfe, die ich bekommen konnte .. :)
Versuchen Sie, Sie in Ajax und Ihre $ _GET zu $ _POST oder setzen Sie einen die() rechts in der isset Anweisung POST GET zu sehen, ob es tatsächlich zu diesem Punkt. – Jeff
1st: Sie müssen zurückgegebene Daten mit Erfolg: function (data) {alert (data);} und sehen, ob irgendwelche Fehler .. 2nd: Ich denke, $ (this) im Erfolg wird nicht funktionieren so definieren ThisIt = $ (Dies); am Anfang des click-Ereignisses und dann ThisIt im Erfolg anstelle von $ (this) –
mysqli_query() wahr oder falsch? GET-Parameterwerte werden maskiert? –