javascript - 如何使用 jquery 在 AJAX 中调用警报?
问题描述
我是网络开发的新手。关于在我的 AJAX 中调用警报,我已经陷入这个问题很长一段时间了。如果在我的数据库中找不到任何记录,我要做的就是向用户显示警报。我的代码如下:
Javascript:
function get_types() {
let $select = $("#colony_type");
$.ajax({
url: 'server.php',
type: 'POST',
data: { "input": "types",
"name": $("#colony_name").val() },
dataType: 'json',
success: function(response) {
let selectedValue = $select.val();
let html = response.filter((e, i, a) => a.indexOf(e) === i).map(item => `<option value="${item}">${item}</option>`);
$select.html(html).val(selectedValue);
},
complete: function() {}
});
}
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
$server="localhost";
$username="root";
$pass="";
$con=mysqli_connect($server,$username,$pass);
$connection=mysqli_select_db($con,"electric billing system");
if($_POST["input"] == "types"){
if(!$connection)
echo "Connection to database failed! Please try again";
else{
$codes=array();
$sql = "SELECT * from colony_master WHERE Colony_name='".$_POST["name"]."'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$code=$row["Colony_code"];
}
$sql = "SELECT * from quarter_master_entry WHERE Colony_code='".$code."'";
$result = $con->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
array_push($codes,$row["Qtr_type"]);
}
echo json_encode($codes);
}
else
echo "No colony type information found"; //I want to show this message as alert if no records are found
}
}
}
$con->close();
?>
HTML:
<p id="cln_type"><b>Type</b> :<br><select name="colony_type" id="colony_type" onclick="get_types()">
<option value="default" selected="selected_type">Select your colony type</option>
</select></p>
如果我从服务器收到一个空数组,那么它应该显示一个警报。我怎么做?请帮我。
编辑:我尝试在我else
的 php 语句中使用此代码显示警报消息,但仍然不起作用:
$message = "No colony type information found";
echo "<script type='text/javascript'>alert('$message');</script>";
解决方案
修复服务器端响应,以便它使用 jsonified 数组回答
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
array_push($codes,$row["Qtr_type"]);
}
//echo json_encode($codes);
}else{
$error=array();
$error['error'] = "No colony type information found";
array_push($codes,$error);
}
echo json_encode($codes);
然后在 ajax 中success
:
success: function(response) {
let selectedValue = $select.val();
response = JSON.parse(response); // Possibly useless... Just as a note.
if(response.error){
alert(response.error)
return
}
let html = response.filter((e, i, a) => a.indexOf(e) === i).map(item => `<option value="${item}">${item}</option>`);
$select.html(html).val(selectedValue);
},
未经测试......但你应该明白这一点。;)
推荐阅读
- scala - 如何从 .scala 文件中获取所有配置参数?
- angular - 返回空动作或有效的可观察(角度redux / ngrx)
- lda - 来自 topicmodels 的 LDA() 函数中的附加种子词参数
- javascript - 为什么我不能返回对象将其分配给包含 AJAX 的函数的变量
- c# - 以编程方式设置 Umbraco True/False 属性时,值不保留
- javascript - Ag-Grid - 渲染单元格时的工具提示(引导程序)
- powershell - 远程重启电脑两次
- javascript - 期望一个赋值或函数调用,而是看到一个表达式。(W030)
- python-3.x - PySpark-如何使用 Pyspark 计算每个字段的最小值、最大值?
- mysql - MySql 查看记录 最近24小时记录