2010-04-14 4 views
0

У меня был аналогичный вопрос, размещенный здесь несколько часов назад, и теперь я получил ответ, что я должен изучить использование AJAX для этого. Поскольку я хочу завершить эту часть сайта сегодня, я не могу позволить себе изучить AJAX из основ, чтобы сделать это сейчас. Это не должно быть что-то трудное, и я должен был бы сделать это, но я недостаточно опытный ...Как остановить перенаправление после отправки формы?

У меня есть форму, когда вы нажимаете кнопку «Отправить», она публикует сообщения на twitter.com/statuses/update.xml, и мне нужно иметь возможность сделать это, не перенаправляясь туда.

Есть ли простой способ сделать это или мне нужно изучить AJAX?

Благодарим за любой ответ вообще ..!

редактировать:

Я использую это представить:

$(function() { 
    $("#skikka").click(function() { 
     var dendar = 
      "http://" + 
      $("#usernam").val() + ":" + $("#passwo").val() + 
      "@twitter.com/statuses/update.xml"; 

     $("#formen").attr("action", dendar); 
     $("#formen").submit(); 
     alert(dendar); 
     return false; 

    }); 
}); 
+0

protip: для быстрого форматирования html, javascript, кода css с соответствующими отступами, вставьте код на http://www.jsfiddle.net и нажмите кнопку «TidyUp» вверху, затем вставьте отформатированный код в свой вопрос на StackOverflow. – Anurag

ответ

0

типа = "кнопку" вместо типа = Вы можете использовать "отправить".

+0

Обновлен мой вопрос .. теперь вы поймете, почему я не могу – Noor

0

Просто перенаправляйте обратно на свою страницу в своем сценарии на стороне сервера. На каком языке вы используете?

+0

Я использую только jQuery, javascript и простой html. XML, который я отправляю, находится на серверах twitters, я не могу сказать, что XML перенаправит меня на мой сайт. – Noor

0
// post via ajax 
$.post(dender, $("#formen").serialize()); 

Полный пример:

$(function() { 
$("#skikka").click(function() { 
var dendar = "http://" + $("#usernam").val() + ":" + $("#passwo").val() + "@twitter.com/statuses/update.xml"; 

// post via ajax 
$.post(dender, $("#formen").serialize()); 

alert(dendar); return false; 

}); 
}); 
+0

Я попытаюсь выяснить, как это использовать, похоже, что JohnFxs отвечает на это, читая API Теперь! – Noor

+0

Вам понадобится использовать прокси-сервер, запущенный на вашем собственном сервере, для этого ... вы не можете использовать XHR через домены, и я уверен, что ваш код не работает на twitter.com. –

+0

Я пытаюсь рационализировать полный пример, До сих пор я не понимаю, что функция .serialize состоит в том, чтобы принимать входы один за другим из формы и публиковать их, предупреждение есть, чтобы предупредить, а return false - там все прекратить? Я проверил его, и сценарий дает мне предупреждение, но я не думаю, что сообщение проходит через XML. – Noor

2

Вот краткий пример использования JQuery, который, вероятно, самый простой способ сделать AJAX, не вкладывая слишком много времени обучения его. Хотя кажется, что вам нужно научиться целой другой технологии (JQuery), это действительно не так сложно. В основном это просто связано с добавлением еще одной ссылки на javascript с ссылкой на страницу.

$.post(dendar , $("#formen").serialize()); 

Подробнее о AJAX с Jquery here.

Поскольку вы отправляете обратно в другой домен, вам нужно будет сделать немного дополнительной работы. Ознакомьтесь с этой статьей на using JSONP against twitter.

Кроме того, здесь есть плагин Jquery специально для работы с Twitter: jTwitter

+0

Спасибо, читая его прямо сейчас! – Noor

0

Если вы должны сделать это таким образом (через событие щелчка и без только имея сервер отправить редирект), вы можете добавить onSubmit события к форме, которая обрабатывает фактическое представление через ajax, а затем отменяет распространение события.

Event.observe( 
    $('searchfield').form , 
    'submit' , 
    function(e){ 
    alert('No YOU'); 
    /* secretly submit using ajax and clear form */ ; 
    Event.stop(e) ; 
    }); 

Что-то в этом роде.

Смежные вопросы