我想按照以下逻辑编辑数据库中的某些元素: 我从下拉列表中选择了一个项目(自动完成),其他字段是根据已选择的字段直接从数据库填充的,以便我可以编辑数据。
如何在JSP页面中使用Ajax来做这样的处理?
$(document).ready(function() {
$('#datepicker').datepicker();
$('#field1').change(function()
{
//code ajax wich select the row from database and return the values on the same form
}
);
});
JSP代码:
<s:form cssStyle="border:0;" validate="true" action="add" namespace="/" >
<sx:autocompleter id="field1" label="field1" list="liste1" name="liste"></sx:autocompleter>
<s:textfield name="field2" label="field2" size="15" ></s:textfield>
<s:select style="height:30px; width:125px" name="field3" label="field3" headerValue="Select" list="liste2"></s:select>
<s:submit style="height:30px; width:125px" name="Valider" value="Valider"></s:submit>
</s:form>
请问有什么帮助吗?
编辑:
我想传递自动完成字段中选定的值
$(document).ready(function()
{
$('#field1').change(function()
{
var selectedValue = $('#field1 option:selected').val();
if ($.trim(selectedValue).length > 0)
{
$.ajax(
{
type: 'POST',
url: 'action/action1',
data: { field1 : selectedValue},
dataType: 'json',
async: false ,
contentType: 'application/json; charset=utf-8',
success: function(){window.alert(selectedValue);}
});
}
}
);
});
编辑2:
行动:
public String query()
{
if( !field1.equals("") || field1 != null)
{
Service = new ServiceImpl();
v = new Vehicule();
v= Service.getVehiculeByImmat(field1);
map.put(field2.toString(), v.getfield2().toString());
map.put(date.toString(), v.getdate().toString());
}
return "success";
}
struts.xml:
<action name="query" class="action.GestionVehicules" method="query">
<result name="success" type="json">map</result>
</action>
ajax:
$(document).ready(function()
{
$('#field1').change(function()
{
var selectedValue = $('#field1').val();
if ($.trim(selectedValue).length > 0)
{
$.ajax(
{
type: 'POST',
url: '<s:url action="query"/>',
data: { field1: selectedValue},
dataType: 'json',
success: function(){alert(data);}
});
}
}
);
});
这是真的吗?
编辑 3:
javascript:
$(document).ready(function()
{
$('#field1').change(function()
{
var selectedValue = $('#field1').val();
if ($.trim(selectedValue).length > 0)
{
alert(selectedValue);
$.ajax(
{
type: 'POST',
url : "<s:url action='query'/>",
dataType : 'json',
data: { field1: selectedValue},
success: function(result){
// alert(result);
if (result.length > 0) {
//code to put hashmap values into textfield
//put map.get("key1") into textfield1 ....
});
}
},
});
}
}
);
});
编辑4:
JavaScript:
$.each(result, function(key,value)
{ $("#"+key).val(value); // how can it works with dropdown list ??
} );
最佳答案
要传递所选值(如果已选择),请使用简单的 ajax 请求
$.ajax(
{
type: 'POST',
url: '<s:url action="action1"/>',
data: { field1 : selectedValue},
//async: false ,
success: function(data){
alert(data);
}
});
在操作类中创建一个名为 field1
的字段,其中包含 getter 和 setter。然后您可以选择返回结果类型。如果使用 json 结果,则该字段将被序列化并添加到您在成功处理程序的数据中获取的 json 对象。
关于java - 如何使用struts2通过ajax进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22477899/