2013-11-24 4 views
0

Я сейчас «сражаюсь» с этим, надеюсь, вы могли бы помочь мне в решении. Так что у меня есть основная форма с пустым DIV, который будет затем заполненном:Освежающий div без перезагрузки не работает

<form method='post' action='/shoutek.php'> 
<input type='text' id='shout_tresc' name='shout_tresc' class='shout_tresc' /> 
    <input type='submit' id='dodaj' value='Dodaj' /> 
</form> 

<div class='shoutboxtresc' id='shout'></div> 
<span class='loader'>Please wait...</span> 

shoutek.php содержит запросы делать после отправки формы и функций для заполнения DIV.

Вот идет мой JQuery:

$(function() { 

    $(\"#dodaj\").click(function() { 
     // getting the values that user typed 

     var shout_tresc = $(\"#shout_tresc\").val(); 
     // forming the queryString 
     var data   = 'shout_tresc='+ shout_tresc; 

     // ajax call 
     $.ajax({ 
      type: \"POST\", 
      url: \"shoutek.php\", 
      data: data, 
      success: function(html){ // this happen after we get result 
       $(\"#shout\").toggle(500, function(){ 
       $('.loader').show();  
        $(this).html(html).toggle(500); 
        $(\"#shout_tresc\").val(\"\"); 
       $('.loader').hide();   
       }); 
       return false; 
      } 
     }); 

    }); 
}); 

Проблема в том, что она направляет меня shoutek.php, так что не обновляет DIV в Ajax.

Как вы можете видеть, я использовал return false; - Я также попробовал event.preventDefault(); функция - это не помогло. В чем проблема и как избавиться от него? Будем рады, если вы сможете предоставить мне некоторые решения.

EDIT

Ребята, что я придумал на самом деле работал, но дайте мне знать, если это правильное решение и не вызовет проблем в будущем. Из предыдущего кода (см ответа Luceous') я удалил

$(function() { 

(и, конечно, это закрывающие тегов), и я полностью избавился от:

<form method='post' action='/shoutek.php'> 

Оставляя вход „бесформенный“. Пожалуйста, дайте мне знать, если это хорошее решение - оно работает в конце концов.

+0

Ваши решения также возможно, вы не используете форму вообще в любом случае. Но подумайте, будет ли ваше решение работать, если javascript отключен (что-то я никогда не буду рассматривать в любом случае, но вам может потребоваться в зависимости от ваших посетителей и возможностей их браузеров). – Luceos

ответ

0
$(function() { 

    $("#dodaj").click(function(e) { 
     // prevents form submission 
     e.preventDefault(); 
     // getting the values that user typed 

     var shout_tresc = $("#shout_tresc").val(); 
     // forming the queryString 
     var data   = 'shout_tresc='+ shout_tresc; 

     // ajax call 
     $.ajax({ 
      type: "POST", 
      url: "shoutek.php", 
      data: data, 
      success: function(html){ // this happen after we get result 
       $("#shout").toggle(500, function(){ 
       $('.loader').show();  
        $(this).html(html).toggle(500); 
        $("#shout_tresc").val(""); 
       $('.loader').hide();   
       }); 
       return false; 
      } 
     }); 

    }); 
}); 

Для удобства чтения я удалил ваши экраны. Вы пропустили preventDefault, который запрещает отправку формы.

+0

Я уже упоминал, что я пытался с prevenDefault. Он все еще не работает. –

+0

Я не вижу ваш код для предотвращенияDefault. Но это единственный метод. Так называется ли ваш аякс вообще? – Luceos

+0

Ну, как мне показалось, это не так. Но почему? Я только что упомянутый выше код в тегах

0

Вы должны предотвратить действие по умолчанию на кнопку отправить, нажмите:

$("#dodaj").click(function(event) { 
    event.preventDefault(); 
    // your code 
} 
Смежные вопросы