Ich bin ziemlich neu in Web-Entwicklung und insbesondere AJAX (jquery) und ich bin mit einem Problem konfrontiertAJAX für PHP-Skripte
Ich habe 3 PHP-Skripte
input.php:
<form id="input" action='data.php' method='post'>
<select name="id">
<?php
require_once('function.php');
$conn = connect();
$sql = "SELECT id,item FROM t1";
$results = mysqli_query($conn, $sql) or die($mysqli->error);
//echo "<form action='data.php' method='post'>";
while($row = $results->fetch_assoc()){
echo "<option value='" . $row['id'] . "'>" . $row['item'] . "</option>";
}
?>
<input type='Submit' value='Auswahl bestätigen'/>
</select>
data.php
<form action= 'change.php' method='post'>
<?php
$id = $_POST ["id"];
$id = $mysqli->real_escape_string($id);
require_once('function.php');
$conn = connect();
$sql = "SELECT * FROM t1 WHERE id='".$id."'";
//echo $sql;
$results = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($results);
echo "ID: <input type='number' name='id' value='" .$row['id']. "' readonly
size='5'><br><br>";
echo "Beschreibung: <input type='text' name='beschreibung'
value='".$row['description']."'><br><br>";
echo "Finder: <input type='text' name='finder' required
value='".$row['contact']."' /><br><br>";
echo "Datum: <input type='date' name='datum' required
value='".$row['date']."'> <br><br>";
echo "Ort: <input type='text' name='ort' required value='".$row['place']."'>
<br><br>";
echo "Abgeholt?: <input type='radio' name='abgeholt' value='1' />Ja";
echo "<input type='radio' name='abgeholt' value='0'
checked>Nein<br><br>";
echo "Abholdatum: <input type='date' name='abholdatum'
value='".$row['retrieve date']."'> <br><br>";
?>
<input type='Submit' value='Eintrag ändern!' /><br><br>
</form>
und change.php:
<?php
$id = $_POST ["id"];
$item = $_POST ["gegenstand"];
$description = $_POST ["beschreibung"];
$contact = $_POST ["finder"];
$date = $_POST ["datum"];
$place = $_POST ["ort"];
$retrieved = $_POST ["abgeholt"];
$retrieve_date = $_POST ["abholdatum"];
require_once('function.php');
$conn = connect();
$item = $conn->real_escape_string($item);
$description = $conn->real_escape_string($description);
$contact = $conn->real_escape_string($contact);
$date = $conn->real_escape_string($date);
$place = $conn->real_escape_string($place);
$retrieved = $conn->real_escape_string($retrieved);
$retrieve_date = $conn->real_escape_string($retrieve_date);
$sql ="UPDATE t1
SET description = '$description', contact = '$contact', date = '$date',
place = '$place', retrieved = '$retrieved' , retrieve_date =
'$retrieve_date'
WHERE id = '$id'";
//echo $sql;
if ($conn->query($sql) === TRUE) {
echo "New record created successfully" . "<br>" . "<br>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
so mein Problem:
Diese Skripte arbeiten und ich bin in der Lage Einträge in meinem db (MariaDB) Aber ich möchte ändern sie geladen lassen über AJAX das Gefühl von meiner Seite (etwas, das niemand mag 3 Umleitungen ändern) zu verbessern
versuchte ich es mit der jquery $ .load Funktion, aber keine Freude
<script type="text/javascript">
$(document).ready(function(){
$('#f1').load('input.php');
});
});
</script>
so meine Frage ist:
Ist es möglich, diese Skripte zu verbinden, sie zu max zu senken. 1 redirect oder besser noch, sie über AJAX in die html-Hauptseite zu integrieren?
ps: sorry für Grammatikfehler, Englisch ist nicht meine Muttersprache
Ajax ist nicht nur über das Laden von Seiten. Sie sollten eine einzelne Seite entwickeln, die Ajax-Aufrufe ohne erneutes Laden der Seite ausführt, um Daten an den Server zu senden. Sie müssen nicht jedes Mal eine neue Seite vom Server über Ajax laden. –
Ihr Mischen von mysqli und prozeduralen Funktionen und '$ _POST [" id "]' ist offen für SQL-Injection. –
Nun, da Sie neu sind, legen Sie für einen Moment Ajax beiseite und schauen Sie auf http://bobby-tables.com und lernen Sie SQL Injection und wie man sie verhindert. Im Moment ist Ihr Code überhaupt nicht sicher und Sie sind sehr anfällig für Injektionen. Ihre Datenbank könnte in wenigen Sekunden gehackt werden, ohne dass Sie tiefergehende Kenntnisse über Ihre Systeme benötigen. – Twinfriends