AJAX url的Javascript元素id
我想制作一个包含两个输入字段的表单。在这些字段中键入内容时,必须出现一个下拉列表,其中包含MySQL数据库中的匹配记录。以下是Javascript代码:AJAX url的Javascript元素id,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我想制作一个包含两个输入字段的表单。在这些字段中键入内容时,必须出现一个下拉列表,其中包含MySQL数据库中的匹配记录。以下是Javascript代码: <script type="text/javascript"> $(function() { $("#sampleprep, #quantity, #sampletype, #organism").autocomplete({ response: function(event, ui)
<script type="text/javascript">
$(function() {
$("#sampleprep, #quantity, #sampletype, #organism").autocomplete({
response: function(event, ui) {
try {
// ui.content is the array that's about to be sent to the response callback.
if (ui.content.length === 0) {
$("#"+event.target.id+"-empty-message").text("No results found");
} else {
$("#"+event.target.id+"-empty-message").empty();
//$("#"+event.target.id+"-empty-message").text(event.target.id);
}
} catch(err) {
error = "Error 1: "+err.message;
alert(error);
}
},
source: function(request, response) {
try {
var target_id = "sampletype"; <====
$.ajax({
url: "list_"+target_id+".php", <====
dataType: "json",
data: {
term : request.term
},
success: function(data) {
response(data);
}
});
} catch(err) {
error = "Error 2: "+err.message;
alert(error);
}
},
minlength: 1
});
});
</script>
$(函数(){
$(“#样本准备,#数量,#样本类型,#生物体”).autocomplete({
响应:功能(事件、用户界面){
试一试{
//content是将要发送到响应回调的数组。
如果(ui.content.length==0){
$(“#”+event.target.id+“-空消息”).text(“未找到结果”);
}否则{
$(“#”+event.target.id+“-empty message”).empty();
//$(“#”+event.target.id+“-empty message”).text(event.target.id);
}
}捕捉(错误){
error=“error 1:”+err.message;
警报(错误);
}
},
来源:功能(请求、响应){
试一试{
var target_id=“sampletype”您可以试试这样的方法吗:
<script type="text/javascript">
$(function() {
$(".ajax_getid_").each(function () {
(function ($this) {
$this.autocomplete({
response: function(event, ui) {
try {
// ui.content is the array that's about to be sent to the response callback.
if (ui.content.length === 0) {
$("#"+event.target.id+"-empty-message").text("No results found");
} else {
$("#"+event.target.id+"-empty-message").empty();
//$("#"+event.target.id+"-empty-message").text(event.target.id);
}
} catch(err) {
error = "Error 1: "+err.message;
alert(error);
}
},
source: function(request, response) {
try {
var target_id = "sampletype"; <====
$.ajax({
url: "list_"+$this.attr('id')+".php", <====
dataType: "json",
data: {
term : request.term
},
success: function(data) {
response(data);
}
});
} catch(err) {
error = "Error 2: "+err.message;
alert(error);
}
},
minlength: 1
});
})($(this));
});
});
</script>
$(函数(){
$(“.ajax\u getid”)。每个(函数(){
(功能($本){
$this.autocomplete({
响应:功能(事件、用户界面){
试一试{
//content是将要发送到响应回调的数组。
如果(ui.content.length==0){
$(“#”+event.target.id+“-空消息”).text(“未找到结果”);
}否则{
$(“#”+event.target.id+“-empty message”).empty();
//$(“#”+event.target.id+“-empty message”).text(event.target.id);
}
}捕捉(错误){
error=“error 1:”+err.message;
警报(错误);
}
},
来源:功能(请求、响应){
试一试{
var target_id=“sampletype”;如果你为4个不同的字段编写4种不同的自动完成方法会更好。真的没有办法获得id吗?每次唯一不同的是url。如果可能的话,我想保持代码整洁,而不重复发送相同数量的行。这没有任何作用。我甚至没有得到下拉列表ymore@Fingashpitzzz你能给你的id添加一个名为“ajax_getid_”的类并用$(“#sampleprep,#quantity,#sampletype,#organic”)
替换$(“.ajax_getid”)
。返回最后一个脚本的结果(list_organic.php)会有效吗对于所有字段,而不是每个字段JEP的对应脚本,我这样做了。我的输入字段编码如下:
,每次只有id和名称不同,只是为了澄清,有机体输入字段是表单中的最后一个字段,所有四个输入字段都返回有机体值