来自 html 中 php 脚本的 AJAX 调用显示响应

Posted

技术标签:

【中文标题】来自 html 中 php 脚本的 AJAX 调用显示响应【英文标题】:AJAX call display response from php script in html 【发布时间】:2016-12-28 17:56:45 【问题描述】:

我有一个 html 文件,用户可以在其中输入一个值。 我用 php 编写了一个脚本,用于检查该值是否存在于数据库中。如果存在,则返回

“活跃”:真

现在我的目标是,当用户输入他们的值并提交时,如果此活动为真,他们将被重定向到某个页面。如果它是假的,他们应该会看到一条错误消息。

以下是我尝试使用 AJAX 调用的方法:

$("document").ready(function()
 $(".checkform").submit(function(e)
    e.preventDefault();
    $.ajax(
      type: "GET",
      dataType: "json",
      url: "api/check.php", 
      data: data,
      success: function(data) 
        if(data.active=="true")
            alert("success");
            location.href="where_you_want";
         else
             alert("failure");
         
      
    );
    return false;
  );
);

这是我的 HTML:

<form action="api/check.php" id="requestacallform" method="GET" name="requestacallform" class="formcheck">
                <div class="form-group">
                  <div class="input-group">                               
                    <input id="#" type="text" class="form-control" placeholder="Jouw subdomein" name="name"/>
                  </div>
                </div>
                <input type="submit" value="Aanmelden" class="btn btn-blue" />
</form>

由于某种原因,我收到一个错误:

Uncaught ReferenceError: data is not defined

我是 AJAX 新手,我不确定我尝试的是否正确。 任何帮助将不胜感激!

提前致谢。

【问题讨论】:

你能分享你的 HTML 代码吗? 你在哪里也被重定向了,我猜页面重新加载对吗? 也分享你的html代码 @ArunGhosh 我更新了 OP @Velimir 我被重定向到 /api/check.php 我的脚本 【参考方案1】:

我正在全面更新我的答案

<html>
<body>
    <form action="api/check.php" id="requestacallform" method="GET" name="requestacallform" class="formcheck">
        <div class="form-group">
            <div class="input-group">                               
                <input id="txt1" type="text" class="form-control" placeholder="Jouw subdomein" name="name"/>
            </div>
        </div>
        <input type="submit" value="Aanmelden" class="btn btn-blue checkform" />
    </form> 
</body>
</html>

jQuery 部分就像

  $("document").ready(function () 

    $("body").on("click", ".checkform", function (e) 
        e.preventDefault();
        var request = $("#txt1").value;
        $.ajax(
        type: 'GET',
        url: 'ajax.php',
        data: request: 'request',
        dataType: 'json',
        success: function (data) 
           if(data.active==true)
               alert("success");
           else
                alert("failure");
           

        
    );

    );
);

ajax.php应该是这样的

if(isset($_GET['request']))
  //check for the text
   echo json_encode($arr);     

【讨论】:

data.active 是布尔值,而不是字符串。 你能用你的答案签出更新的 OP 请我得到Uncaught ReferenceError: data is not defined 我正在检查一分钟 @SanoojT 我不明白如何访问 json_encode($data);我的 php 脚本的响应太奇怪了 @FrankLucas 快完成了,我会更新我的答案【参考方案2】:

你可以试试:

  $(".aanmeldenmodal").submit(function(e)
      e.preventDefault();

【讨论】:

以上是关于来自 html 中 php 脚本的 AJAX 调用显示响应的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 在我的 HTML 文档中获取 PHP 文件,但其中的脚本不起作用

html中调用python脚本

如何使用 AJAX/JQuery 调用多个 PHP 脚本?

使用 cron 作业执行 PHP AJAX 调用

Ajax表单提交我想通过id更改表单元素的值,以便脚本从php中的返回值进行下一次调用

为啥这个 PHP 脚本(由 AJAX 调用)随机无法正确加载 SESSION?