2012-05-22 15 views
6

Sto cercando di inviare i dati del modulo alla pagina corrente per la gestione delle variabili usando jQuery. Quando invio la richiesta POST, il server riceve una richiesta GET e il mio URL cambia per corrispondere a GET. Capisco che jQuery si trasforma automaticamente in una richiesta GET se non utilizzo implicitamente type: "POST", ma è quello che credo stia facendo. Qualsiasi aiuto sarebbe apprezzato.jQuery AJAX POST si trasforma in 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

Non c'è forma dentro #domainform ... – thebjorn

risposta

8

potrebbe essere necessario fare:

e.preventDefault() 

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

il caricamento della pagina in modo che la vostra presentare doesnt alla sua azione predefinita in cima alla vostra chiamata ajax ... Inoltre, è potrebbe aggiungere un'azione modulo nel tag modulo action="post"

+1

Prima di tutto, ha bisogno di convertire quell'attributo 'onclick =' HTML in a '.on ('click', function (e) {...})' – Blazemonger

+2

Sarebbe 'onclick =" return addadomain(); 'e quindi' return false' dalla funzione stessa, perché non sta attaccando direttamente la funzione per l'evento click. +1 per identificare il problema. –