提交表单而无需重新加载页面

2022-08-30 07:26:15

我有一个分类广告网站,在展示广告的页面上,我正在创建一个“向朋友发送小费”表单...

因此,任何想要的人都可以将广告提示发送给一些朋友的电子邮件地址。

我猜表单必须提交到php页面对吗?

<form name="tip" method="post" action="tip.php">
  Tip somebody: 
  <input 
    name="tip_email"
    type="text" 
    size="30" 
    onfocus="tip_div(1);" 
    onblur="tip_div(2);"
  />
  <input type="submit" value="Skicka Tips" />
  <input type="hidden" name="ad_id" />
</form>

提交表单时,页面会重新加载...我不想要那个...

有没有办法让它不重新加载,但仍然发送邮件?最好没有ajax或jquery...


答案 1

我发现了我认为更简单的方法。如果您在页面中放置了一个 Iframe,则可以将操作的退出重定向到该页面,并使其显示出来。当然,你什么也做不了。在这种情况下,您可以将 iframe 显示设置为 none。

<iframe name="votar" style="display:none;"></iframe>
<form action="tip.php" method="post" target="votar">
    <input type="submit" value="Skicka Tips">
    <input type="hidden" name="ad_id" value="2">            
</form>

答案 2

您需要提交 ajax 请求才能发送电子邮件,而无需重新加载页面。看看 http://api.jquery.com/jQuery.ajax/

您的代码应大致如下:

$('#submit').click(function() {
    $.ajax({
        url: 'send_email.php',
        type: 'POST',
        data: {
            email: 'email@example.com',
            message: 'hello world!'
        },
        success: function(msg) {
            alert('Email Sent');
        }               
    });
});

表单将在后台提交到需要处理请求并发送电子邮件的页面。send_email.php