2016-02-27 54 views
1

我有一个按钮,链接到一个php文件,单击后跟踪用户的电子邮件,但我不希望用户离开页面时单击按钮,我只是想改变按钮的值。 这是表单的html。PHP表单提交按钮,但不离开页面

<form action="mysql-query.php" method="post"> 
<input type="text" name="email" style="display:none;"> 
<input type="submit" value="Press here" id="test" onclick="Press()"> 
</form> 

这是处理表单中的脚本:

<script> 
function Press() { 
    var test= document.getElementById("test"); 
    test.value="Thank you"; 
localStorage.value=("ok"); 
} 
</script> 

我把显示:无;因为我不想显示除按钮之外的任何内容,并且有一种方法可以与我的php文件进行连接。
任何想法?

回答

1

你需要使用AJAX:

HTML:

<form action="mysql-query.php" method="post" onsubmit="return Press(this)"> 
<input type="text" name="email" style="display:none;"> 
<input type="submit" value="Press here" id="test"> 
</form> 

JS:

function Press(form) { 
    $.post($(form).attr('action'), function() { 
     var test= document.getElementById("test"); 
     test.value="Thank you"; 
     localStorage.value=("ok"); 
    }); 
    return false; // prevent submitting the form 
} 

或更好的结合使用提交事件的jQuery:

$('form').submit(function() { 
    $.post($(this).attr('action'), function() { 
     var test= document.getElementById("test"); 
     test.value="Thank you"; 
     localStorage.value=("ok"); 
    }); 
    return false; // prevent submitting the form 
}); 
+0

谢谢我用你的第一个解决方案,它完美的工作!现在我可以更好地关注我的PHP文件! –

-1

你可以做的是删除按钮上的type =“submit”,并将其替换为type =“button”。接下来,您可以对您的PHP执行ajax调用并执行您的魔法。

+0

AJAX调用是下一步或不同的方式来实现T'也可以给我发一些代码或给我一个例子吗?因为我对AJAX知之甚少 –

+0

@ArgirisA http://www.w3schools.com/ajax/default.asp – Wilkoklak

+0

@Paresh Gami给了你代码。 ajax所做的是调用一个文件,例如php,在你的情况下执行它。当一切都完成后,你会得到php在回应中回应的内容,并可以随时随地使用它。无需重新加载页面。 –

1

用途:

<form action="javascript:void()"> 

好了,这件事情可以防止形式从任何地方发送数据,除非你使用“点击”事件提交按钮。

+0

我还想链接到php文件。你可以做到这一点,并有一个JavaScript无效的功能? –

+0

然后您需要使用AJAX。我在另一篇文章中给了你关于AJAX的w3schools部分的链接 – Wilkoklak

+0

虽然这段代码片段可能解决这个问题,[包括解释](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based -answers)真的有助于提高你的文章的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 - [来自评论](https://stackoverflow.com/review/low-quality-posts/11430379) – Ferrybig