Ich versuche, den Inhalt meiner PHP-Web-Seite zu ändern, mit Ajax, wie unten die index.php Seite eingegeben eingereicht, die auf der Schaltfläche klicken, um eine Funktion ausgeführt nennen, aber mein Problem ist, dass die Seite neu zu laden ist esupdate php Seite mit Ajax mit Post-Anfragen laden Sie die Seite neu?
also möchte ich wissen, was ich falsch mache ??
Bitte beachte, dass ich die Post-Anfragen verwenden meine Daten sicher zu halten, wie w3schools.com
empfohleninexd.php Datei Code unten
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Site Title</title>
</head>
<body align="left">
<div>
<h4 align="left">Balance Enquiry</h4>
</div>
<form>
<div>
<label>Account Number </label>
<input id="AccNum" type="text" name="AccNumInput">
<button type="button" onclick="SendForm()">Search</button>
</div>
</form>
<script>
function SendForm()
{
alert("Hello! SendForm start");
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
document.getElementById("AccNum").innerHTML = xmlhttp.responseText;
}
};
alert("Hello! going to send ajax");
var x = xmlhttp.open("POST","AccData.php", true);
xmlhttp.send(document.getElementById("AccNum").value); // you want to pass the Value so u need the .value at the end!!!
alert(document.getElementById("AccNum").value);
alert("Hello! SendForm end");
}
</script>
</body>
</html>
Der data.php Datei Code unten
<?php
alert("Hello! php start processing");
$AccountNumber = $_POST['AccNum'];
$conn = oci_connect('admin', 'admin', 'localhost/JDT', 'AL32UTF8');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
alert("Hello! connected to oracle");
$sqlstr = 'SELECT CUSTOMER_ID,CUST_NAME,PHONE1 FROM customers where CUSTOMER_ID=:AccNum';
$stid = oci_parse($conn, $sqlstr); // creates the statement
oci_bind_by_name($stid, ':AccNum', $AccountNumber); // binds the parameter
oci_execute($stid); // executes the query
echo $AccountNumber;
/**
* THIS WHILE LOOP CREATES ALL OF YOUR HTML (its no good solution to echo data out like this)
*/
while ($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) {
echo "<tr>";
foreach ($row as $item) {
echo "<td align=center>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid); // releases the statement
oci_close($conn); // closes the conneciton
?>
Vielen Dank für Ihre freundliche Hilfe .. das erklärte viele Dinge, die mir nicht klar waren ... bitte würde es Ihnen etwas ausmachen, mir beizubringen, was besser zu verwenden statt Schleife, um HTML zu erstellen? – samer
Youre willkommen ich denke, die beste Lösung ist, ein JSON-Objekt zu erstellen und das JSON-Objekt zurück auf die HTML-Seite und dann den Rest mit Javascript ... aber Schritt für Schritt ... Versuchen Sie nicht, alle Technologien zu lernen gleichzeitig ist das sehr schwer. –
okay, dann gehen Sie Schritt für Schritt, wie Sie sagten .. ein letztes denken, die Daten nicht vom Server zurückkommen die URL geändert, http: // localhost/test /? AccNumInput = 1000 aber das Ergebnis wird nicht geladen und an der xmlhttp.send ("accNum =" + document.getElementById ("AccNum"). value) sollte xmlhttp.send (document.getElementById ("AccNum"). value) sein, da der Wert mit string übergeben wird, der nicht innerhalb der SQL-Anweisung? – samer