为什么我尝试的基本Ajax脚本不起作用?
我目前正试图通过示例学习Ajax的基础知识。通过遵循基本教程,我成功创建了以下脚本:为什么我尝试的基本Ajax脚本不起作用?,ajax,Ajax,我目前正试图通过示例学习Ajax的基础知识。通过遵循基本教程,我成功创建了以下脚本: <!DOCYTPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"> $(function(){ $('#mybtn').on('click', function(e){ e.preventDefaul
<!DOCYTPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
$(function(){
$('#mybtn').on('click', function(e){
e.preventDefault();
$('#mybtn').fadeOut(300);
$.ajax({
url: 'ajax-script.php',
type: 'post',
}); // end ajax call
});
</script>
</head>
<body>
<a href='#' id='mybtn'>click me</a>
</body>
</html>
$(函数(){
$('mybtn')。在('click',函数(e)上{
e、 预防默认值();
$('mybtn')。淡出(300);
$.ajax({
url:'ajax script.php',
键入:“post”,
});//结束ajax调用
});
结合名为ajax-script.php的简单php文件,该文件包含以下代码:
<?php
if($_POST) {
echo "<p>ok</p>";
}
?>
有人能确定我可能做错了什么吗?我如何才能做到这一点?您没有成功函数-这就是接收echo的PHP数据的地方 另外,您需要关闭加载jQuery库的
script
标记,并使用不同的script标记来描述javascript代码
试试这个:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(function(){
$('#mybtn').on('click', function(e){
e.preventDefault();
$('#mybtn').fadeOut(300);
$.ajax({
url: 'ajax-script.php',
type: 'post',
success: function(d){
alert(d);
}
}); // end ajax call
});
</script>
然后,您可以让PHP回显您发送的内容,因此:
<?php
if($_POST) {
$recd = $_POST['test'];
echo 'PHP side received: ' . $recd;
}
?>
<?php
$recd = $_POST['test'];
echo 'PHP side received: ' . $recd;
?>
为了避免第一个答案过于单一,我将在这个新答案中回应您的评论 有几件事可以尝试: (1)
ajax.php
文件的位置——它是否与包含javascript代码的页面位于同一文件夹中
(2) ajax.php
文件的名称——请注意,在代码中它是ajaxscript.php
(3) 我在点击按钮后添加了一个警报——出现了吗
(4) 我删除了IF条件--ajax.php
文件将返回到javascriptsuccess
函数,无论发生什么情况
(5) 为了确保jQuery正常工作,我添加了jQuery代码来着色背景。如果背景不是略带橙色,则jQuery不会加载
这个修好了吗
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(function(){
$('body').css('background','wheat');
$('#mybtn').on('click', function(e){
alert('Button clicked'); //<==========================
e.preventDefault();
$('#mybtn').fadeOut(300);
$.ajax({
url: 'ajax.php',
type: 'post',
data: 'test=Hello',
success: function(d){
alert(d);
}
}); // end ajax call
});
</script>
$(函数(){
$('body').css('background','wheat');
$('mybtn')。在('click',函数(e)上{
alert('Button clicked');//什么不起作用?你期望发生什么/试图实现什么?谢谢你的回答。奇怪的是,这似乎也不起作用。我已经复制并粘贴了你发布的第二个JS代码到一个名为ajax.php的文件中,并用你提供的内容更新了php文件。然后我将其上传到了我的服务器(这里:www.theshitpit.com/beta/ajax.php)。你知道为什么这可能仍然不起作用吗?@JohnSmith I添加了一个响应作为一个单独的“答案”(以防止第一个答案变得太大)。此外,你可能会从中找到一些有用的信息
<?php
$recd = $_POST['test'];
echo 'PHP side received: ' . $recd;
?>