【问题标题】:How To POST to a PHP file using jQuery [duplicate]如何使用 jQuery 发布到 PHP 文件 [重复]
【发布时间】:2013-07-05 18:51:45
【问题描述】:

好吧,当用户单击它时,我有一个按钮,它被禁用并淡入淡出在一条消息中谢谢我们会尽快解决这个问题 但现在我想要做的是,当用户点击按钮时,它将禁用,然后它将发布到一个 php 文件(比如:error.php),这个 error.php 将是这样的

<?php
if(isset($_POST['submit'])){
  $ip= $_SERVER['REMOTE_ADDR'];
  $page= $_SERVER['REQUEST_URI'];
// now update these to sql database ..... and if successfully posted return true 
}
else{
  return false;
}

现在,如果 jQuery 为 True,它将在 div 中显示成功消息 否则它将在另一个 div 中消失并显示错误/抱歉消息

html 和 JS 是这样的

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("#submit").click(function(){
 $('#submit').attr('disabled',true);
  $("#div1").fadeIn(1000); //if success
  $("#div2").fadeIn(1000); //if error
  });
});
</script>
</head>
<body>
<div id="div1" style="display:none;">Success</div>
<div id="div2" style="display:none;">Error</div>
<button id="submit">report The Page</button>
</body>
</html>

请帮忙 谢谢

【问题讨论】:

标签: php jquery


【解决方案1】:

只需做一个 ajax 帖子......就像这样......

$("#submit").click(function(){
$('#submit').attr('disabled',true);
 $.post("example.php", function() {      
    $("#div1").fadeIn(1000); 
  }).fail(function() { 
    $("#div2").fadeIn(1000);});

但我不知道你的表单在哪里,所以我不知道你发布的是什么数据。

【讨论】:

    【解决方案2】:

    使用 jQuery,您可以使用 .post() 函数:http://api.jquery.com/jQuery.post/

    此函数使用 HTTP POST 请求并具有“成功”功能。最简单的使用方法是:

    $.post('php/error.php', function(data) {
       console.log(data); // In your case "data" should be either "true" or "false"
    });
    

    您也可以传递其他参数(请参阅文档)。要在正确的 div 中淡入淡出,只需检查成功函数的“数据”参数即可。

    希望这能回答你的问题

    【讨论】:

      【解决方案3】:

      要了解如何通过 jQuery 发布,请查看 http://api.jquery.com/jQuery.post/

      在您的情况下,您的 javascript 代码将类似于:

      $("#submit").click(function(){
          $('#submit').attr('disabled',true);
      
          $.post('error.php', function(data) {
              if(data.success) {
                  $("#div1").fadeIn(1000);
              } else {
                  $("#div2").fadeIn(1000);
              }
          });
      });
      

      您需要将表单的内容与此帖子一起提交吗?如果是这样,请将上面的 javascript 更改为:

       $.post('error.php', $("#myform").serialize(), function(data) {
      

      这假设您有一个&lt;form id="myform"&gt;,您想提交给error.php。

      它还假设您的 PHP 脚本使用 json 返回一个“成功”属性,类似于(从您的代码修改):

      <?php
      if(isset($_POST['submit'])){
          $ip= $_SERVER['REMOTE_ADDR'];
          $page= $_SERVER['REQUEST_URI'];
          // now update these to sql database
          echo json_encode(array("success" => 1));
      }
      else{
          echo json_encode(array("success" => 1));
      }
      

      【讨论】:

      • 不,没有表单,只有一个用于报告页面的按钮,用户单击按钮报告页面....然后它将添加到 mySQL 表中,以便我可以检查页面如果出现问题,则将其删除。如果用户单击该按钮,则只有一个按钮,它只会将帖子调用到 php 文件并禁用该按钮并淡入成功或错误消息
      • @SoumeshBanerjee 是有道理的。那我回答你的问题了吗?我认为上面的代码应该让你继续发帖,接收来自服务器的响应,并淡入正确的消息。
      猜你喜欢
      • 2020-10-19
      • 2016-08-14
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2013-07-25
      • 2013-11-09
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多