gpt4 book ai didi

javascript - 如何使用 AJAX(不使用 jQuery)和 PHP 计算记录数

转载 作者:行者123 更新时间:2023-11-27 22:41:50 25 4
gpt4 key购买 nike

我是一名初级程序员,我想计算表中的记录数。我已经看过很多代码摘录,但我似乎无法将它们拼凑在一起以将 PHP 结果传输到我的 javascript 代码。这是我最终得到的代码:

showscan.php

<php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
error_reporting(E_ERROR);
try{
$conn = new mysqli("localhost", "root", "root", "bencoolen");

$query = "SELECT COUNT(*) FROM discountcode";
$result = $conn->query($query);
echo mysql_num_rows($result);

$conn->close();
}
catch(Exception $e) {
echo "error";

}
?>

index.html

<head>
<!-- The policy below is cancelled out so the project can run on my android device's version -->
<!--<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">-->
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link rel="stylesheet" type="text/css" href="css/index.css">
<link rel="stylesheet" href="js/jquery.mobile-1.4.5.min.css">
<link rel="stylesheet" href="css/jquery.mobile.datepicker.css" />
<script src="js/jquery-1.11.3.min.js"></script>
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="js/jquery.ui.datepicker.js"></script>
<script id="mobile-datepicker" src="js/jquery.mobile.datepicker.js"></script>
<script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>
<script type="text/javascript" src="barcodescanner.js"></script>
<script type="text/javascript" src="cordova.js"></script>
<script src="common.js"></script>

<script type="text/javascript">
function showscan(){
var xmlhttp = new XMLHttpRequest();
var url = serverURL() + "/showscan.php";
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

//The alert below was alerted
alert("readystate and status OK");
document.getElementById("noscan").innerHTML = xmlHttp.responseText;

//The alert below was not alerted
alert(document.getElementById("noscan").innerHTML);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
</script>
</head>

<body>
<div data-role="page" id="pageone">
<div data-role="content" class="ui-content" id="loginsection">
<form name="LoginForm">
<div class="ui-grid-a">
<div class="ui-block-b">
<input id="noscan" type="text" class="input-text" placeholder="Number of scans"/>
</div>
</div>
</form>
</div>
</div>
</body>

'document.getElementById("noscan").innerHTML' 未收到警报,且包含 'document.getElementById("noscan").innerHTML' 的字段已声明函数运行后,下面的 html 文件也是空白的。在删除所有 json_encoding 之后,这些代码是我的编程笔记的一部分,因为我不确定它的作用以及更好地遵循示例。我确实安装了 jQuery,但 jQuery Ajax 对我来说有点难以承受,我可以想象在没有 jQuery 的情况下进行 Ajax 调用会更好。

问题:如何将 PHP 中的 count(*) 值传输到我的 javascript 代码中?在什么情况下我必须使用 JSON 对结果进行编码才能发送?

谢谢!

最佳答案

好吧,您的代码中有一些拼写错误和错误:

错别字您的<php标签在你的 showscan.php => <?php

xmlHttp在线document.getElementById("noscan").innerHTML = xmlHttp.responseText; javascript函数showscan()应该是xmlhttp 。 (小 h)因为 JavaScript 是一种区分大小写的语言。

错误javascript showscan() noscandocument.getElementById("noscan").innerHTML = xmlHttp.responseText;text input并且输入文本没有属性 innerHTML

showscan.php

mysql_num_rows;echo mysql_num_rows($result);应该是mysqli_num_rows;注意到区别了吗? mysql & mysqli

建议

serverURL()var url = serverURL() + "/showscan.php";如果你有这个showscan.php页面位于同一文件夹中,然后只需写入 showscan.php .

从你的HTML的外观来看代码,我没有看到任何调用你的函数 showscan() 。因此,您可以调用 body 来调用它。负载<body onload="showscan();">或插入<button>并用 onclick 调用它属性 <button type="button" onclick="showscan();">submit</button>

现在试试这个代码

showscan.php

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
error_reporting(E_ERROR);
try{
$conn = new mysqli("localhost", "root", "root", "bencoolen");
$query = "SELECT * FROM discountcode";
$result = $conn->query($query);
echo mysqli_num_rows($result);
$conn->close();
}
catch(Exception $e) {
echo "error";
}
?>

Javascript 函数 showscan()

function showscan(){
var xmlhttp = new XMLHttpRequest();
var url = "showscan.php";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//The alert below was alerted
alert("readystate and status OK");
document.getElementById("noscan").value = xmlhttp.responseText;
//The alert below was not alerted
alert(document.getElementById("noscan").value);
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}

关于javascript - 如何使用 AJAX(不使用 jQuery)和 PHP 计算记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38693877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com