Javascript 使用XMLHttpRequest显示MySQL内部数据库中的数据
我在下面有一个index.htm页面,其中有一个id=“studentGpa”的文本框,用户输入一个数字,程序将打开php页面,搜索数据库,然后从student表中提取数据。我需要显示的数据是用户输入的最小GPA。例如,如果用户输入3.5,则显示GPAs 3.5或以下的所有学生信息(学生ID、姓名、电子邮件、学生GPA) 代码正在编译,但当我输入数字3时,它将显示GPA中有3的学生的所有信息,或者如果我输入3.5,它将显示GPA中有3.5的所有学生的信息。这可能是查询或my index.htm页面上的代码有问题。我是否需要javascript中的if语句或嵌入html中的if语句,以便显示与用户输入的数字相对应的学生信息。下面是程序外观示例的图像。 index.htmJavascript 使用XMLHttpRequest显示MySQL内部数据库中的数据,javascript,php,mysql,xmlhttprequest,Javascript,Php,Mysql,Xmlhttprequest,我在下面有一个index.htm页面,其中有一个id=“studentGpa”的文本框,用户输入一个数字,程序将打开php页面,搜索数据库,然后从student表中提取数据。我需要显示的数据是用户输入的最小GPA。例如,如果用户输入3.5,则显示GPAs 3.5或以下的所有学生信息(学生ID、姓名、电子邮件、学生GPA) 代码正在编译,但当我输入数字3时,它将显示GPA中有3的学生的所有信息,或者如果我输入3.5,它将显示GPA中有3.5的所有学生的信息。这可能是查询或my index.htm页
很难理解您的问题是什么,您能更清楚地说明您面临的问题吗?
这不是查询的问题
-相反,这是您的查询的问题!您正在比较文本之类的输入值(studentGpa-like:studentGpa
),而不是数字。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Matt Ferebee's Kung Fu School</title>
<meta charset="utf-8">
<link href="main.css" rel="stylesheet" type="text/css">
<script>
function queryFunction(){
var ajaxRequest;
try{
ajaxRequest = new XMLHttpRequest();
}catch (e){
try{
ajaxRequest = new ActiveXObject("Msxm12.XMLHTTP");
}catch (e){
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}catch (e) {
alert("Your browser is broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
var studentGpa = document.getElementById('studentGpa').value;
var queryString = "?studentGpa=" + studentGpa;
ajaxRequest.open("GET","matthewferebee_search.php" + queryString, true);
ajaxRequest.send(null);
}
</script>
</head>
<body>
<header>
<h1>Matthew Ferebee's Kung Fu School - Search Students</h1>
</header>
<main>
<section>
<h4>Search for Students with the minimum GPA</h4>
<form name="myForm">
Minimum GPA:
<input type="text" id="studentGpa"><br><br>
<label> </label>
<input type="button" onclick="queryFunction();" value="Search"style="margin-left: 98px;">
</form>
<div id="ajaxDiv"><h4>Students with GPAs with higher than minimum GPA will be displayed here.
</h4></div><br>
<a href="matthew_ferebee_ajaxsearch_single.htm">Search & Split</a>
</section>
</main>
<footer>
<p class="right">
© <?php echo date("Y");?> Matthew Ferebee Kung Fu School</p>
</footer>
</body>
</body>
</html>
<?php
require_once('matthew_ferebee_database.php');
$studentGpa = filter_input(INPUT_GET, 'studentGpa');
//echo $studentGpa."<br>";
$query = "SELECT * FROM student
WHERE studentGpa LIKE :studentGpa
ORDER BY studentID";
$statement = $db->prepare($query);
$statement->bindValue(':studentGpa', "%".$studentGpa."%", PDO::PARAM_STR);
$statement->execute();
$students = $statement->fetchAll();
?>
<table cellpadding="0" style="width: 600px">
<tr>
<td style="width: 162px">Student ID</td>
<td style="width: 285px">Name</td>
<td>Email</td>
<td>GPA</td>
</tr>
<?php
foreach ($students as $s)
{
?>
<tr>
<td style="width: 162px"><?php echo $s['studentID'];?></td>
<td style="width: 285px"><?php echo $s['name'];?></td>
<td><?php echo $s['email'];?></td>
<td><?php echo $s['studentGpa'];?></td>
</tr>
<?php
}
?>
</table>
DROP DATABASE IF EXISTS matthew_ferebee_assignment_db;
CREATE DATABASE matthew_ferebee_assignment_db;
USE matthew_ferebee_assignment_db;
/*
CREATE TABLE
*/
CREATE TABLE STUDENT (
studentID INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
studentGpa DECIMAL(4,2) NOT NULL,
PRIMARY KEY (studentID)
);
INSERT INTO STUDENT (studentID, name, email, studentGpa)
VALUES
/*
StudentID Name Email GPA */
(1, 'Po Black', 'poblack@gmail.com', 3.51),
(2, 'Shifu Hoffman','shihoffman@gmail.com', 2.52),
(3, 'Tigress Jolie','tigressjolie@gmail.com', 3.63),
(4, 'Jennifer Yuh', 'jenniferyuh@gmail.com', 1.44),
(5, 'Ox Storming', 'ocstorming@gmail.com', 3.95),
(6, 'Monkey Chan', 'monkeychan@gmail.com', 4.00),
(7, 'Viper Liu', 'viperliu@gmail.com', 2.37),
(8, 'Mantis Rogen', 'mantisrogen@gmail.com', 3.29),
(9, 'Crane Cross', 'cranecross@gmail.com', 3.72),
(10, 'Oogway Kim', 'oogway@gmail.com', 1.53),
(11, 'Ping Hong', 'pinghong@gmail.com', 2.52)
;
/*username and password created along with granting privileges*/
GRANT SELECT, INSERT, DELETE, UPDATE
ON matthew_ferebee_assignment_db.*
TO matthewweb@localhost
IDENTIFIED BY 'matthewchocolate';