Javascript 使用ajax和grails更新SQL数据库

Javascript 使用ajax和grails更新SQL数据库,javascript,ajax,grails,Javascript,Ajax,Grails,我在springsource工具套件中使用grails,在更新SQL数据库时遇到了一个问题。在页面中,要求用户输入其财产的详细信息,如地址、城市等,一旦单击“保存”按钮,需要将详细信息保存在数据库中。现在我需要做的是,每次用户单击“添加”按钮时,动态地将输入字段(地址、城市等)添加到页面中。因此,我需要使用AJAX将数据发布到服务器。但是,我在更新它时遇到了问题。以下是视图(.gsp文件)的代码- 这是我的属性控制器中的代码(保存操作)- 我做错了什么?我对Ajax一点也不熟悉,如果这是一个明显

我在springsource工具套件中使用grails,在更新SQL数据库时遇到了一个问题。在页面中,要求用户输入其财产的详细信息,如地址、城市等,一旦单击“保存”按钮,需要将详细信息保存在数据库中。现在我需要做的是,每次用户单击“添加”按钮时,动态地将输入字段(地址、城市等)添加到页面中。因此,我需要使用AJAX将数据发布到服务器。但是,我在更新它时遇到了问题。以下是视图(.gsp文件)的代码-

这是我的属性控制器中的代码(保存操作)-

我做错了什么?我对Ajax一点也不熟悉,如果这是一个明显的错误,那么很抱歉。。请帮助。

$(“#地址”).val()
$('#city').val()
将获取jQuery找到的第一个
#address
#city
元素的值。如果要为所有地址和城市值创建一个数组,可以执行以下操作:

var cities = [];
var addresses = [];

$('#address​​​​').each(function() { 
    addresses.push($(this).val());
});​

$('#cities​​​​').each(function() { 
    cities.push($(this).val());
});​
$('#save_button').click(function() {
    // ... all your regular ajax stuff ...

    // reset the fields
    $('#address').val('');
    $('#city').val('');
    // ... and so on until you reset all fields
});
如果页面上有两个地址和城市输入,结果将如下所示:

console.log(addresses); // [address1, address2]
console.log(cities); // [city1, city2]
编辑:要在提交时重置字段(或在更改jQuery选择器时“添加”),可以执行以下操作:

var cities = [];
var addresses = [];

$('#address​​​​').each(function() { 
    addresses.push($(this).val());
});​

$('#cities​​​​').each(function() { 
    cities.push($(this).val());
});​
$('#save_button').click(function() {
    // ... all your regular ajax stuff ...

    // reset the fields
    $('#address').val('');
    $('#city').val('');
    // ... and so on until you reset all fields
});

我希望用户输入一组输入(地址和城市),然后单击保存,并将其更新到数据库中。然后单击“添加”,页面上将通过函数调用add()显示另一组元素,并重复相同的操作。那么数组是必需的吗?我不明白为什么当我运行应用程序时,单击“保存”按钮什么都不做。我遗漏了什么?我明白了,我以为你想允许添加任意数量的地址。当按下“添加”按钮时,是否尝试重置所有字段的值?另外,您的JavaScript是否能够满足Ajax请求?我建议在
console.log()
alert()
中喷洒,以查看脚本是否在任何时候停止工作。我添加了一个解释字段重置的编辑。另外,您是否必须在JavaScript中创建字段?为什么不将地址和城市字段放在HTML中,并在需要时重置其值?更新后的字段需要使用“列表”操作仅替换为属性的详细信息。然后为另一个属性添加一组新的输入元素。这就是设计考虑,尽管你刚才提到的会简单得多。这有什么办法吗?
$('#save_button').click(function() {
    // ... all your regular ajax stuff ...

    // reset the fields
    $('#address').val('');
    $('#city').val('');
    // ... and so on until you reset all fields
});