Отправьте форму без перезагрузки страницы

У меня есть веб-сайт объявлений, и на странице, где реклама, показал, я создаю, "Отправляют подсказку другу" форма...

Таким образом, кто-либо, кто хочет, может отправить подсказку рекламы некоторым друзьям адрес электронной почты.

Я предполагаю, что форма должна быть отправлена 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>

При представлении формы перезагружается страница... Я не хочу это...

Там какой-либо путь состоит в том, чтобы заставить его не перезагрузить и все еще отправить почту? Preferrably без ajax или jQuery...

Спасибо

82
задан 19 May 2010 в 13:49
поделиться

7 ответов

Вам нужно будет отправить запрос 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 , которая должна будет обработать запрос и отправить электронное письмо.

59
ответ дан 24 November 2019 в 09:12
поделиться

Вот несколько jQuery для публикации на php-странице и возврата html:

$('form').submit(function() {
    $.post('tip.php', function(html) {
       // do what you need in your success callback
    }
    return false;
});
-5
ответ дан 24 November 2019 в 09:12
поделиться

Вам нужно будет использовать JavaScript, чтобы не получить iframe (уродливый подход).

Вы можете сделать это с помощью JavaScript; использование jQuery сделает это безболезненно.

Предлагаю вам попробовать AJAX и Posting.

0
ответ дан 24 November 2019 в 09:12
поделиться

Вы либо используете AJAX, либо

  • создаете и добавляете iframe к документу
  • устанавливаете имя iframe to 'foo'
  • установить цель формы на 'foo'
  • submit
  • , чтобы действие форм отображало javascript с помощью 'parent.notify (...)', чтобы дать обратную связь
  • , при желании вы можете удалить iframe
20
ответ дан 24 November 2019 в 09:12
поделиться

Вы можете попробовать установить атрибут target вашей формы на скрытый iframe, чтобы страница, содержащая форму, не перезагружалась.

Я попробовал это с загрузкой файлов (которая, как мы знаем, не может быть выполнена через AJAX), и это прекрасно сработало.

3
ответ дан 24 November 2019 в 09:12
поделиться

Страница будет перезагружена, если вы не хотите использовать javascript

-1
ответ дан 24 November 2019 в 09:12
поделиться

Вы пробовали использовать iFrame? Нет ajax, и исходная страница не загрузится.

Вы можете отобразить форму отправки как отдельную страницу внутри iframe, и когда она будет отправлена, внешняя страница / страница контейнера не будет перезагружаться. Это решение не будет использовать какой-либо ajax.

2
ответ дан 24 November 2019 в 09:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: