可能重复:
How to return AJAX response Text?
How to return the response from an AJAX call from a function?
我试图根据我用ajax发送的值从SQL获取记录。但是当我在console.log中时,我得到的所有内容都是未定义的。
jQuery的:
function extraOptions(str){
$.get("inc/ajax/extra_options.php",
{q:str},
function(html){
return html;
}
);
}
$("#auto_model").change(function(){
console.log(extraOptions(this.value));
});
extra_options.php:
$q = $_GET['q'];
echo extra_options($mysqli, $q);
extra_options函数:
function extra_options($mysqli, $q){
$query = "SELECT
extra_options
FROM
vozila_tbl
WHERE
Model_vozila = '".$mysqli->real_escape_string($q)."'";
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
return $row['extra_options'];
}
编辑:
它应返回1或0,如果返回0,我想用if语句更改updateField函数。
function updateField(str, id, prevvalue, value, vehicletype){
$.get("inc/ajax/form_rest.php",
{q:str, prevvalue:prevvalue, value:value, vehicletype:vehicletype},
function(html){
$('#'+id).html(html);
}
);
}
$("#auto_model").change(function(){
updateField(this.value, 'auto_bodywork', 3, 4, this.parentNode.id), resetBelow(2,'auto'), show('auto_bodywork');
});
我需要在if语句中更改的行是:
updateField(this.value, 'auto_bodywork', 3, 4, this.parentNode.id), resetBelow(2,'auto'), show('auto_bodywork');
答案 0 :(得分:3)
您的return
语句是从匿名函数返回的,而不是从extraOptions()
返回的。因此,extraOptions()
返回undefined,因为它什么也没有返回。
请改为尝试:
function extraOptions(str){
$.get("inc/ajax/extra_options.php",
{q:str},
function(html){
console.log(html);
}
);
}
$("#auto_model").change(function(){
extraOptions(this.value);
});
如果我理解你的话,下面的代码应该做你想要的:
$("#auto_model").change(function(e) {
extraOptions(this.value, this.parentNode.id);
});
function extraOptions(str, parentNodeId) {
$.get("inc/ajax/extra_options.php",
{q:str},
function(data) {
if (data == "1") {
updateField(str, "auto_bodywork", 3, 4, parentNodeId);
} else if (data == "0") {
updateField(str, "auto_type", 5, 7, parentNodeId);
} else {
//Not 0 or 1.
}
resetBelow(2, "auto");
show("auto_bodywork");
}
);
}
function updateField(str, id, prevvalue, value, vehicletype){
$.get("inc/ajax/form_rest.php",
{q:str, prevvalue:prevvalue, value:value, vehicletype:vehicletype},
function(html){
$('#'+id).html(html);
}
);
}