我从YouTube教程中复制了代码,修改了数据库连接和SELECT项以连接到我现有的DB,但我似乎无法让JS加载PHP文件。在Chrome中使用"inspect"工具,我可以看到JS文件正在加载,但是当我点击我的HTML页面上的GRAB时,它不做任何事情。就像JS文件正在加载但没有运行。
Webserver文件夹结构:
ROOT FOLDER
test.html
-AJAX (folder)
name.php
-JS (folder)
global.js
-CONNECTIONS (folder)
dbase.php
HTML代码
<!doctype html>
<html>
<head>
<title>AJAX Database</title>
</head>
<body>
Name: <input type="text" id="name">
<input type="submit" id=name-submit" value="Grab">
<div id="name-data"></div>
<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script src="js/global.js"></script>
</body>
</html>
Javascript文件
$('input#name-submit').on('click', function() {
var name = $('input#name').val();
if ($trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
$('div#name-data').text(data);
});
}
});
PHP文件首先尝试在javascript点击函数中添加console.log('something'),就在var name =…行,以查看您的事件是否正在启动。如果没有,则需要正确注册该事件。点击功能是否被
包围?$(document).ready(function () {
$('input#name-submit').on('click', function() {
var name = $('input#name').val();
if ($trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
$('div#name-data').text(data);
});
}
});
});
//try using submit event
$(document).ready(function () {
$('input#name-submit').on('submit', function(e) {
e.preventDefault();
var name = $('input#name').val();
if ($trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
$('div#name-data').text(data);
});
}
});
});
我不知道为什么我的PHP代码被编辑并从这里删除,但我最终重写了整个PHP页面。我将or die(mysql_error());
添加到SELECT语句中,发现它需要我在FROM中指定数据库。我在我的服务器上有多个数据库,即使DB在连接字符串中指定,它也需要在SQL语句中再次指定。我解决的下一个问题是删除mysql_num_rows
,因为这只是不像演示那样工作。
<?PHP
if (isset($_POST['name']) === true && empty ($POST['name']) === false) {
require '../db/connect.php';
$query =mysql_query("
SELECT 'names'.'location'
FROM 'names'
WHERE 'names'.'name' = '" . mysql_real-escape_string(trim($_POST['name'])) . "'
");
echo (mysql_num_rows($query) !== 0) ? mysql_result($query, 0, 'location') : 'Name not found';
}
?>
原文对于我想要的和我想解决的问题来说太复杂了,所以我重写了它:
新建PHP文件
<?PHP
//I've intentionally left out the connection data..
$sql_select = mysql_query("
SELECT names.location
FROM database_name.names
WHERE names.name = '" . $_POST['name'] . "'
")
or die(mysql_error());
$sql_fetch = mysql_fetch_assoc($sql_select);
echo $sql_fetch['name'];
?>
感谢那些帮助我的人。欣赏…
我知道PHP文件中不推荐的标签,但是当我从演示中复制时,所以我想在使用新标签更新之前让它工作。