第一步:在body元素的底部添加Jquery。不要使用 Jquery SLIM 版本。
<script src="/script/jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script>
第 2 步:确保您的数据包含在表单元素中,并且表单中有一个按钮。
<form>
<input name="stuff" value="">
<button></button
</form>
第 3 步:收集信息并使用 ajax 将其发送到 php 文件。
$("form").submit(function(event){
event.preventDefault();
alert("click");
var data = $("form").serialize();
$.ajax({
type:'POST',
url:'yourphppage.php',
data: data,
beforeSend: function() {
alert(data);
},
success:function(msg){
alert(msg);
if (!$.trim(msg)){
alert("no message");
}else if($.trim(msg) == '1'){
alert("logged in");
//window.location.href = "/index.php";
}else if($.trim(msg) == '0'){
alert("email taken");
}else{
alert("error");
}
}
});
});
*序列化数据将获取输入元素的名称并分配值。然后它会发送一串数据。比如'stuff=inputevalue?morestuff=inputvalue'。
第 4 步:创建一个接收数据、将数据存储在数据库中并向您发送响应的 php 文件。
这是一个登录页面的示例,它需要一个 post 或 die 子句,但要测试这个很容易,并且显示了很多如何测试东西的示例。
<?php
date_default_timezone_set('America/Los_Angeles');
session_start();
require("db_connect.php");
// If form submitted, insert values into the database.
$email = stripslashes($_POST['stuff']); // removes backslashes
// $email = stripslashes('aaron@treaze.com');
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
$email = mysqli_real_escape_string($conn,$email); //escapes special characters in a string
$password = stripslashes($_POST['password']);
// $password = stripslashes("hackme69");
$password = mysqli_real_escape_string($conn,$password);
//echo $password."<br><br>";
//echo $email."<br><br>";
//Checking is user existing in the database or not
// $query = "SELECT * FROM `users` WHERE email='$email'";
$query = sprintf("SELECT * FROM users WHERE email='%s'", $email);
$result = mysqli_query($conn,$query) or die(mysql_error());
if($result){
while($obj = $result->fetch_object()){
$existingHashFromDb = $obj->password;
$role = $obj->role;
}
if(password_verify($password, $existingHashFromDb)){
$_SESSION['email'] = $email;
$_SESSION['role'] = $role;
echo "1";
}else{
echo "0";
}
}else{
echo "No input";
}
?>
第 5 步:确保您的数据库连接在同一个文件目录中,并且看起来像这样。
<?php
/* Database connection start */
$servername = "localhost";
$username = "******";
$password = "*******";
$dbname = "********";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
最后一步:设置数据库以接收值。
总之,有很多例子可以说明该做什么。它给了你这个概念。但是,如果这对您来说是新的。我的建议是从非常小的和基本的开始,然后建立起来。一旦你掌握了这个概念,你就会像专业人士一样 ajaxing 周围的一切。
我还想补充一点... ajax 有很多方法。如果您想从一个 ajax 调用中接收多个响应,您将需要学习如何将信息转换为 JSON 并将结果存储在变量 Array 中。然后您可以访问多个响应。
这是获取多个值并在一个响应中发送它们的 PHP 代码示例。
<?php
session_start();
date_default_timezone_set('America/Los_Angeles');
include_once("db_connect.php");
$getusername = $_GET["username"];
$getusername = $_SESSION['username'];
$results = $mysqli->query("SELECT * FROM users4 WHERE username= '".$getusername."' ");
if($results){
while($obj = $results->fetch_object())
{
$username=$obj->username;
$firstName=$obj->name;
$lastName=$obj->lastName;
$email=$obj->email;
$dob=$obj->dob;
}
}
echo json_encode(array("firstName" => $firstName, "lastName" => $lastName, "email" => $email, "dob" => $dob, "username" => $getusername));
?>
这是一个带有 JSON 的 AJAX 示例。
function initiateCall() {
// alert("sending text to" + $("#phone_number").val() );
$.post("call.php", { phone_number : $("#phoneNumber").val() },
function(data) { showCodeForm(data.verification_code); }, "json");
}
你必须弄清楚什么是最适合你的。我希望这能给你一些方向。