2013-12-02 2 views
0

Я хочу создать форму сообщения, чтобы получить данные с моего URL-адреса и отправить его в мою базу данных. Когда я нажал кнопку «Добавить», он отлично работает, но когда я пытаюсь добавить функцию $ (document) .ready, я получаю бесконечный цикл. (Моя цель представления образуют каждый раз, когда я выполнить файл) У меня нет knowlage о JQuery и Im, используя этот код:

<script type="text/javascript"> 
$(document).ready(function() { 
document.forms["form1"].submit(); 
}); 
</script> 

Как я могу избавиться от бесконечного цикла?

+0

сделать вашу форму имеет какой-либо идентификатор атрибута –

+0

проблема заключается в каждый раз, когда страница загружается он снова представил .. одно решение может быть, чтобы отправлять сообщения в другой файл PHP и после того, как вы закончите с обработки данных .. добавить перенаправление 'header (" Location: myOtherPage.php ");' для кода там, чтобы избежать бесконечного цикла –

ответ

0

Можете ли вы попробовать?

$(document).one("ready",function(){ 
    // submit form here 
}); 
+0

Я попытался, но снова получил цикл:/ exspet

+0

Проверьте мой ответ plz. – Antegeia

1

Я предполагаю, что ваша форма не имеет атрибута действия, следовательно, она заносится в себя. Добавить атрибут действия на страницу, которую вы хотите разместить на:

<form action="mypage.html".... 
+0

Мои функции php и моя форма находятся на одной странице, поэтому моя форма работает так:

(Потому что я хочу делать всю работу на одной странице) – exspet

+2

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

+0

Но моя проблема в том, что я выполнил страницу один раз, это сообщение бесконечное время. – exspet

-1

Внутри вашей формы вставить эту строку,

<input type="hidden" name="ispost" value="0" id="ispost"> 

И в JQuery добавить это, ваш вопрос будет решен

<script type="text/javascript"> 
    $(document).ready(function() { 
     if($('#ispost').val() != 'submit') 
     { 
      $('#ispost').val('submit'); 
      $('#form1').submit(); 
     } 
    }); 
</script> 
+0

То же самое у OP уже есть (второе). – putvande

+0

@putvande У меня есть решение для решения, пожалуйста, посмотрите, его вопрос был немного запутанным для меня вначале. –

+0

Я предполагаю, что не могу объяснить свою проблему. Я хочу отправить форму на загрузку страницы, так что функция $ (document) .ready важна для меня, и я ничего не знаю о jquery, но это не сработало для меня:/ – exspet

1

Вам нужно будет использовать cookie для хранения первой информации о загрузке и проверки ее перед отправкой формы. Установите время истечения в соответствии с требованиями вашего проекта. Прежде чем использовать jQuery cookie, вы добавите плагин cookie после библиотеки jQuery.

jQuery Cookie: jQuery Cookie plugin.

<script type="text/javascript"> 
$(document).ready(function() { 
    if (! $.cookie("cookieName")){ 
     document.forms["form1"].submit(); // do your stuff   
     $.cookie("cookieName", "firstSet", {"expires" : 7}); // set cookie now 
    } 

}); 
</script> 

Надежды помогут!

0

Используйте приведенный ниже код.

<form action="yourformname.html" method="post" enctype="multipart/form-data"> 

</form> 

<input type="submit" value="Submit"> 

Если есть какой-либо контроль загрузки файлов, используйте enctype в теге формы.

0

Возможно, флаг может выполнить эту работу.

var flag = true; 
$(document).ready(function(){ 

    if(flag){ 
    // submit code here 
    flag = false; 
    } 
});