[英]AJAX and HTML element not working
我试图设置一个div标签,以在数据库中找不到用户时显示一条消息。
这是我无法开始的工作:
$("message").html(msg);
如果您能帮助我了解我在做什么错,那将会有所帮助。 谢谢
$(document).ready(function(){
$("#submit").click(function(){
var username = $("#username").val();
var code = $("#code").val();
var msg = "Who are you?!";
var dataString = 'username='+ username + '&code='+ code;
localStorage.setItem("number",code);
if(username==''||code=='')
{
alert("Um..you are missing something...");
}
else
{
$.ajax({
type: "POST",
url: "verify.php",
data: dataString,
cache: false,
success: function(result){
if(result != 0)
alert(result);
},
error: function(){
$("message").html(msg);
}
});
}
return false;
});
});
我的PHP代码
<?php
$username = trim($_POST["username"]);
$code = trim($_POST["code"]);
include_once './inc/config.php';
$con = new mysqli(HOST, USER, PASSWORD, DATABASE);
$sql="SELECT * FROM info WHERE First_Name='".$username."' AND Line_Number='".$code."'" ;
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,$sql);
$num_rows = mysqli_num_rows($result);
if($num_rows != 0){
echo true;
}
else{
//echo "Who are you?!";
return false;
}
mysqli_free_result($result);
mysqli_close($con);
如果您的消息元素具有ID message
,请像这样选择它:
$("#message").html(msg);
如果它具有类 message
,请像这样选择它:
$(".message").html(msg);
JQuery文档包含所有选择器类型的概述和深入描述。
另外,要触发Javascript中的error方法,服务器端代码需要发送HTTP错误代码,例如:
header("HTTP/1.1 404 Not Found");
或像这样:
http_response_code(404);
要使用ID消息定位div,请使用
$("#message")
您错过了#
尝试这个:
$.ajax({...
success: function(data){
if(data)
$("#message").html (msg);
else
alert(data);
}
});
message
是类还是ID? 确保使用正确的选择器在其上显示输出。
error: function(){
$("message").html(msg);
}
当找不到用户时,是否以404或2xx以外的其他方式响应? 而且,是的,选择器不正确。 仅在请求服务器期间HTTP错误的情况下才会调用您的函数。
这个
else{
//echo "Who are you?!";
return false;
}
不会运行您的功能。 这个
else{
//echo "Who are you?!";
header("HTTP/1.0 404 Not Found");
exit;
}
可以做到,但不是很好的解决方案。 最好的办法就是退回这样的东西
$response = array('status' => 'failed', 'text' => 'Whatever');
header('Content-type: application/json');
echo json_encode($response);
exit;
然后在成功功能中处理数据,检查“状态”,依此类推。
将#用作ID和。 对于类错误:function(){$(“#message”)。html(msg);
除了message
选择器中明显的错误外,我可以看到的另一个问题是您的代码在您的PHP中。
您的php代码不会返回错误条件,而是返回true或false,因此始终会调用成功回调。
所以
if($num_rows != 0){
echo true;
}
else{
//echo "Who are you?!";
echo false;
}
然后
$.ajax({
type: "POST",
url: "verify.php",
data: dataString,
cache: false,
success: function (result) {
if (result) {
alert(result);
} else {
alert(msg);
//make sure you use a proper selector here
$("message").html(msg);
}
},
error: function () {
$("message").html(msg);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.