Как отправить форму без обновления страницы? - PullRequest
1 голос
/ 11 января 2012

Я не знаю PHP.

Я не хочу, чтобы пользователь переходил на http://www.example.com/feedback-thanks.html после отправки формы.То, что я хочу, это текст под отправленной кнопкой или что-нибудь без обновления страницы .

Я удалил header( "Location: http://www.example.com/feedback-thanks.html" );, но я не получаю электронное письмо и пользователь перенаправляется на отзыв.php ... :(

html

<form method="post" action="feedback.php">
<input name="email" type="email"/>
<textarea name="message" id="feedback-textarea" autofocus="autofocus" required="required" ></textarea>
<button type="submit" id="feedback-button-send">send</button>
</form>

feedback.php

<?php
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "abcde@gmail.com", "Subject Here",
    $message, "From: $email" );
  header( "Location: http://www.example.com/feedback-thanks.html" );
?>

Ответы [ 4 ]

8 голосов
/ 11 января 2012

Вам придется использовать $.ajax() для этого

это то, что я использую в одноммоих приложений

$('#submitSearch').click(function() {

        var formData = {
            searchData: $('#searchData').val(),
        };

        $.ajax({
            url: siteUrl + 'fetch/search',
            type: "POST",
            data: formData,
            cache: true,            
            beforeSend:function(){
                jQuery('#main').html('<div class="loading"><img src="' + siteUrl + 'resources/imgs/ajax-loader.gif" alt="Loading..." /></div>');
            },
            success: function(data) {
                jQuery('#main').empty();
                jQuery('#main').append(data);
            },
            error:function(x,e){
                if(x.status==0){
                    alert('You are offline!!\n Please Check Your Network.');
                }else if(x.status==404){
                    alert('Requested URL not found.');
                }else if(x.status==500){
                    alert('Internel Server Error.');
                }else if(e=='parsererror'){
                    alert('Error.\nParsing JSON Request failed.');
                }else if(e=='timeout'){
                    alert('Request Time out.');
                }else {
                    alert('Unknow Error.\n'+x.responseText);
                }
            }
        });
        return false;
    });
0 голосов
/ 12 января 2012

Если вы хотите то, что я хочу, просто посмотрите на этот урок (с демонстрацией)

http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

0 голосов
/ 11 января 2012
  1. возможность - используйте ajax в любой форме - jQuery, обычный и т. Д. См. Google

  2. posibility - Создайте скрытый iframe с name = "sender" и используйте целевой атрибут формы (я не уверен, что он действителен, но он работает без JavaScript)

0 голосов
/ 11 января 2012

Я бы предложил использовать фреймворк Javascript, такой как jQuery, и использовать его функцию AJAX. Множество учебников можно найти в интернете, если вы воспользуетесь Google.

Начните с jquery.com

...