如何在数据库中存储JS变量

时间:2012-03-26 14:16:53

标签: javascript ajax jquery cakephp-2.0

我正在使用CakePHP,几天后我尝试在mysql数据库中借助ajax(jQuery)存储一个java脚本变量。

我正在使用以下代码执行此操作:

 <!-- 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>

但是当我点击提交按钮时,Ajax会发布我的网页的整个酸性代码。 =(

我需要的是一个将java脚本变量存储到我的数据库但不重新加载页面的函数。

我很感激任何帮助=)

3 个答案:

答案 0 :(得分:1)

你告诉jQuery序列化一个表单元素。也就是说,将表单元素转换为文本字符串。换句话说,您告诉它获取表单的HTML代码并将其发送到您的服务器。

我不知道(或想知道)AJAX发送表单数据的正确方法是什么,但我知道你需要实际做一些事情,比如访问表单的字段来获取它们的值。

答案 1 :(得分:1)

我的js有点生疏,但尝试改变:

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

要:

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

或者:

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

假设您要序列化并存储整个表单的html。

要从表单中提取一个值(我认为您不需要序列化),请尝试:

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

当然,将someInputName更改为您要保存的字段的实际名称是。

答案 2 :(得分:0)

问题可能出在数据参数.. $('#saveForm').serialize(); 应该没问题