2012-11-24 93 views
0

我用一个简单的PHP形式我发现这里http://www.1stwebdesigner.com/tutorials/custom-php-contact-forms/comment-page-2/#comments联系表格提交按钮 - 禁用

但我有这几个问题重定向。点击提交按钮时,我希望能够保留在我的网站上,而不是在mail.php上重定向,而只是在我的网站上打印/回复发送的消息。

此外,我想使字段有要求,如不是空的,我知道如何在PHP中做,但我必须首先解决重定向问题。

回答

2

你需要的是$.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字符串。

+0

所以当提交按钮被点击时,信息将被保存,然后转移到php文件?在你的例子中,你说的名字是:“John”,但我希望John是用户在输入字段上写有文本的文本,其名称代码为“email”。所以它是''。我在问如何将输入字段名称链接到脚本。 – lonewulf

+1

那么这也很容易,我已经添加了这篇文章在编辑 – toxicate20

+0

好吧,所以我在正确的方向吗?这里是一个jsFiddle:http://jsfiddle.net/rjg7W/1/ - 和我的php:'<?php $ name = $ _POST ['name']; $ email = $ _POST ['email'];?>'。当我将它添加到按钮上时,该功能似乎不起作用(不出现味精)。 – lonewulf

0

有了刚才设置表单动作为当前页面在同一页上停留,那么你可以使用:

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

将运行PHP代码,当按钮被按下:)

提交

但是,这仍然会重新加载页面,但它不会引导你到一个不同的PHP页面。如果你不希望页面重新加载,那么你可以使用ajax :)