我正在使用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脚本变量存储到我的数据库但不重新加载页面的函数。
我很感激任何帮助=)
答案 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();
应该没问题