【发布时间】:2016-01-27 10:03:35
【问题描述】:
我正在构建一个包含div 的网页,其中包含通过 PHP 从 MySql 数据库中检索到的一些数据。此 div 显示了一些产品,在其左侧有一个简单的导航栏,其中包含不同的类别。我正在尝试做的是,当用户单击此导航栏的类别时,div 的内容将发生变化,显示该类别的所有产品都存储在数据库中。所以我尝试使用Ajax(我第一次顺便说一句),但我似乎无法让它工作。我的项目结构是这样的:
父目录
- php > index.php
- css > index.css
- js > index.js
- img > 图片在这里
- ajax> products-ajax.js / products-ajax.php
index.php 文件链接到 index.js 和 products-ajax.js 但是,我已经尝试在 index.js 和 index.php 中包含 Ajax 代码行,但我无法让它从 products-ajax.php 接收数据 任何帮助表示赞赏。
这是我的测试代码的样子:
/* THIS IS THE products-ajax.js */
$(document).ready(function(){
$('.products-list li').click(function(){
$.post("products-ajax.php",
{p: "Product name"},
success: function(data){alert(data)}
);
});
});
<?php
/* THIS IS THE products-ajax.php */
$p = $_POST['p'];
echo $p;
?>
我意识到我的浏览器的调试器说缺少括号:
$('.products-list li').click(function(){
//The debugger says HERE v should go a parentheses
$.post("products-ajax.php", {p: "Product name"}, success: function(data{alert(data)});
});
【问题讨论】:
-
错误是什么?什么应该发生,什么没有发生?
-
@RayonDabre 这只是一个非常简单的测试,看看 Ajax 是否可以在我的页面中工作。问题是 products-ajax.php 应该将 $p 作为 products-ajax.js 中的
data参数发送,然后将其显示为警报。它似乎既没有向 php 文件发送请求,也没有从它返回数据 -
@bhelmet 感谢您提醒我浏览器有调试器!调试器这样说:
SyntaxError: missing ) after argument list紧跟在 javascript 文件中的"products-ajax.php"之后 -
试试这个:
$.post("products-ajax.php", {p: "Product name"}, function (data) { alert(data); });参考this 获取详细文档!
标签: javascript php jquery css ajax