2012-05-22 2 views
6

Я пытаюсь отправить данные формы на текущую страницу для обработки переменных с помощью jQuery. Когда я отправляю запрос POST, сервер получает запрос GET, а мой URL-адрес изменяется в соответствии с GET. Я понимаю, что jQuery автоматически переходит к запросу GET, если я не подразумеваю использование type: "POST", но это то, что я считаю. Любая помощь будет оценена по достоинству.jQuery AJAX POST превращается в GET

<script> 
    function addadomain(){ 
     $.ajax({ 
      type: "POST", 
      url: "domains.php", 
      data: $("#domainform form").serializeArray(), 
      success: function() { 
       $("#domainlist").load("domains.php #domainlist"); 
       $.ajaxSetup({ cache: false }); 
      } 
     }); 
     return false; 
    }; 
</script> 

<a id="displayText" href="#" onclick="toggle();" >Add Domains</a> 

<div id="toggleText" style="display: none"> 
    <form name="adddomain" id="domainform" autocomplete="on"> 
     <input type="hidden" name="userid" id="userid" value="<?PHP echo $loggedInUser->user_id; ?>" /> 

     Domain: <input type="text" name="domain" id="domain" required="required" /><br /> 
     Keyword: <input type="text" name="keyword" id="keyword" required="required" /><br /> 
     Facebook Url: <input type="text" name="facebook" id="facebook" /><br /> 
     Twitter Url: <input type="text" name="twitter" id="twitter" /><br /> 
     Analytics ID#: <input type="text" name="analytics" id="analytics" /><br /> 
     Blogspot Url: <input type="text" name="blogspot" id="blogspot" /><br /> 

     <input type="submit" onclick="addadomain()" id="submit" value="submit" /> 
    </form> 
</div> 
+5

Внутри формы #domainform нет формы ... – thebjorn

ответ

8

вам, возможно, потребуется сделать следующее:

e.preventDefault() 

http://api.jquery.com/event.preventDefault/

при загрузке страницы, так что ваш отправить Doesnt его действия по умолчанию на верхней части Ajax вызова ... Кроме того, вы мог бы добавить действие формы в ваш тег формы action="post"

+1

Во-первых, ему необходимо преобразовать этот атрибут 'onclick =' HTML в to '.on ('click', function (e) {...})' – Blazemonger

+2

Это будет 'onclick =" return addadomain(); ', а затем' return false' из самой функции, потому что он не прикрепляется напрямую функция для события click. +1 для определения проблемы. –