【问题标题】:How to get a value to one php page to another without reload with Ajax and JavaScript [duplicate]如何在不使用 Ajax 和 JavaScript 重新加载的情况下将一个 php 页面的值传递给另一个页面 [重复]
【发布时间】:2023-03-24 22:05:01
【问题描述】:
 <html>
 <body>
 <div id="main_login_div">
    <form name="form1" id="main_form" method="post" target="_parent"   action="checklogin.php">
          <input name="myusername" type="text" id="myusername"  placeholder="User Name Here">
          <input name="mypassword" type="password" id="mypassword"  placeholder="Password Here">
          <input type="submit" name="Submit" id="gogogo" value="Login">
          <p id="msg" name="msg"><?php echo $_GET['msg']; ?></p>
    </form>
 </div>
</body>
</html>

所以这是我的登录表单,我使用GET 方法获取消息密码是否错误,所以问题是当我点击提交页面时刷新,我不希望我的页面重新加载,有没有什么方法可以在不使用AjaxJavaScript 而不是JQuery 重新加载页面的情况下获得结果

【问题讨论】:

  • AJAX requests 是要走的路。还有为什么CSS 标签?
  • 任何其他无需刷新即可获得价值的方式 - 否。
  • 为什么不想使用ajax?这很棒! jquery 让它变得如此简单......
  • How to make an AJAX call without jQuery? 也许这会更好地考虑这个问题实际上是重复的。
  • @VikasKandari 看看 cmets,如果没有 Ajax,你无法做到这一点。

标签: javascript php html


【解决方案1】:

唯一的方法是使用 AJAX 并且使用 JavaScript 也更容易。使用 jQuery 库中的 $.post() 非常容易。

示例(使用 jQuery):

<script type="text/javascript">
    $("form#main_form").submit(function(e){
        e.preventDefault(); //stops the form submitting normally
        var formData = $(this).serializeArray(); //make an array of the form data

        $.post("checklogin.php", formData, function(response){ //POST the form data to 'checklogin.php'
            console.log(response); //output PHP response to console
        });
    });
</script>

【讨论】:

  • 还有javascript请给js代码
  • 别再撒谎了。 jQuery 不是 only 解决方案。
  • 我想在我的页面上使用 java 脚本和 php 而不是 jq ajax 请提供 javascript 代码
  • @naomik 我没有撒谎,我只是不会为他写代码。
  • @VikasKandari 我以为你不想使用 Ajax 那么你为什么要一个带有纯 Javascript 的 Ajax 示例(我已经给你一个示例,其中包含指向另一个问题的链接)?
【解决方案2】:

这是一个使用简单原生 JavaScript 的简单 ajax 请求

function request(url, callback) {

  var req = new XMLHttpRequest();

  req.onreadystatechange = function() {
    if (req.readyState !== XMLHttpRequest.DONE) return;

    switch (req.status) {
      case 200:
        return callback(null, req.responseText);
      case 404:
        return callback(Error('Sorry, 404 error'));
      default:
        return callback(Error('Some other error happened'))
    }
  };

  req.open("GET", url, true);
  req.send();

  return req;
}

你可以这样使用它

var req = request('/some-data.json', function (err, res) {

  // check for error
  if (err) return console.error(err);

  // do something with the data
  console.log(JSON.parse(res));
});

请注意,您需要做一些额外的研究才能在较旧的 IE 浏览器上支持此功能。

【讨论】:

    【解决方案3】:

    据我所知,获取客户端和服务器之间传递信息的方式有 3 种:

    1. 页面加载
    2. AJAX
    3. 网络套接字

    AJAX 是普通的 JavaScript,根据您的浏览器支持,您可能需要以几种不同的方式实现它来支持旧的和新的。大多数人使用jQuery's $.ajax() 函数是因为它更容易编写(和阅读)。

    如果您不希望 AJAX 或页面重新加载,唯一的其他选择是使用 websockets,但是对特定的服务器端和客户端软件有很多依赖。它相对较新,因此没有很多“初学者指南”。 不过,这可能会让您入门:http://www.phpbuilder.com/articles/application-architecture/optimization/creating-real-time-applications-with-php-and-websockets.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2021-12-27
      • 2012-11-07
      • 1970-01-01
      • 2015-12-08
      • 2012-11-02
      • 1970-01-01
      相关资源
      最近更新 更多