【问题标题】:Contact form submit button - disable redirect联系表单提交按钮 - 禁用重定向
【发布时间】:2012-11-12 12:11:34
【问题描述】:

我正在使用我在这里找到的一个简单的 php 表单 http://www.1stwebdesigner.com/tutorials/custom-php-contact-forms/comment-page-2/#comments

但我几乎没有遇到任何问题。单击提交按钮时,我希望能够留在我的网站上,而不是在 mail.php 上被重定向,而只是在我的网站上打印/回显发送的消息。

我也想让字段有要求,比如不为空,我知道如何在 php 中做,但我必须首先解决重定向问题。

【问题讨论】:

    标签: php forms redirect submit contact


    【解决方案1】:

    您需要的是$.ajax from jQuery。这将发送一个 POST 请求而不重新加载页面。

    假设您的按钮被称为myButton,那么对于onClick() 事件,您将调用该函数

    $.ajax({
      type: "POST",
      url: "some.php",
      data: { name: "John", location: "Boston" }
    }).success(function( msg ) {
      alert( "Data Saved: " + msg );
    });
    

    在您的some.php 中,您只需使用$_POST['name']$_POST['location'] 来检索信息。

    编辑

    假设您有一个输入字段。您也可以通过 jQuery 从此类字段中检索信息。然后,您可以通过 ajax 将输入字段中的信息发送给您的 php 脚本

    $('#yourInputField').val();
    

    其中yourInputField 是输入字段的ID。有了这个,您可以将此信息传递给脚本。如果表单中有多个元素,您可能需要查看函数serialize()。原则上做同样的事情,只是将所有信息压缩成一个 JSON 字符串。

    【讨论】:

    • 那么当点击提交按钮时,信息将被保存然后传输到php文件中?在您的示例中,您说名称:“John”,但我希望 John 是用户在输入字段上写入的文本,其名称代码为“email”。所以它是<input type="text" name="email">。我在问如何将输入字段名称链接到脚本。
    • 这也很简单,我已在编辑中将其添加到帖子中
    • 好吧,我的方向正确吗?这是一个 jsFiddle:jsfiddle.net/rjg7W/1 - 和我的 php:<?php $name = $_POST['name']; $email = $_POST['email'];?>。当我将它添加到按钮上时,该功能似乎不起作用(没有出现味精)。
    【解决方案2】:

    保持在同一页面上,您只需将表单操作设置为当前页面,然后您就可以使用:

    if (isset ($_POST['submit'])){
    (php code to run goes in here)
    echo 'blah blah';
    }
    

    当提交按钮被按下时,它将运行 php 代码:)

    然而,这仍然会重新加载页面,但不会将您定向到不同的 php 页面。如果您根本不希望页面重新加载,那么您可以使用 ajax :)

    【讨论】:

      猜你喜欢
      • 2013-10-16
      • 2018-02-12
      • 2015-05-05
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      • 2014-11-28
      • 2014-04-17
      相关资源
      最近更新 更多