2012-03-26 3 views
0

J'utilise CakePHP et depuis plusieurs jours j'essaie de stocker une variable de script java à l'aide d'ajax (jQuery) dans une base de données mysql.Comment stocker la variable JS dans une base de données

J'utilise le code suivant pour ce faire:

<!-- document javascripts -->  
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#saveForm').submit(function(){ 
      var formData = $(this).serialize(); 
      var formUrl = $(this).attr('action'); 
      $.ajax({ 
       type: 'POST', 
       url: formUrl, 
       data: formData, 
       success: function(data,textStatus,xhr){ 
         alert(data); 
       }, 
       error: function(xhr,textStatus,error){ 
         alert(textStatus); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 

Mais quand je clique sur le bouton Envoyer, Ajax signalerai toute sourcode de ma page Web. = (

Ce que je besoin est une fonction pour stocker une variable de script java à ma base de données, mais sans recharger la page.

Je suis reconnaissant pour toute aide =)

+0

La page est également rechargée? – r0m4n

+0

Non, la page ne se recharge pas. Cela fonctionne bien. Même la variable 'formData' est remplie de données correctes. Mais ajax montre toujours le code source entier = ( – Chronnie

Répondre

1

Vous avez dit jQuery pour serialise un formulaire élément. C'est-à-dire, convertissez l'élément de formulaire en une chaîne de texte. En d'autres termes, vous lui dites d'obtenir le code HTML du formulaire et de l'envoyer à votre serveur. Je ne sais pas (ou je veux savoir) quelle est la bonne façon d'envoyer les données d'un formulaire par AJAX, mais je sais que vous devez réellement faire quelque chose comme accéder aux champs du formulaire pour obtenir leurs valeurs.

0

Le problème pourrait être dans le paramètre de données .. $('#saveForm').serialize(); devrait être ok

+0

Elle obtient l'URL de l'attribut d'action du formulaire, évidemment ce n'est pas faux parce que comme indiqué: "Ajax affichera tout le code source de ma page Web." Le problème est ce qu'il affiche, –

1

Mon js est un peu rouillé, mais essayez de changer:

var formData = $(this).serialize(); 

Pour:

var formData = $('#saveForm').serialize(); 

Ou:

var formData = $('#saveForm').val().serialize(); 

Cela suppose que vous voulez sérialiser et stocker le code HTML de l'ensemble du formulaire.

Pour tirer juste une valeur de la forme (je ne pense pas que vous avez besoin sérialisation) essayer:

var formData = $('#saveForm #someInputName').val(); 

Bien sûr changer someInputName à quel que soit le nom réel du champ que vous souhaitez enregistrer est.

+0

Salut, merci à tous de m'avoir répondu =) Maintenant, j'utilise l'instruction suivante: 'var formData = $ ('# saveForm'). val();' Lorsque j'imprime cette variable cela fonctionne très bien. Mais la valeur de la variable de données du bloc ajax est toujours la page entière = ( – Chronnie

Questions connexes