Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我尝试的基本Ajax脚本不起作用?_Ajax - Fatal编程技术网

为什么我尝试的基本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

我目前正试图通过示例学习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.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
文件将返回到javascript
success
函数,无论发生什么情况

(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;
?>