得到的选择.值从ajax生成的选项
Getting options.value from ajax generated options
我的想法是,我有这个选择框,当我在输入文本中键入时,它会使用给定的通配符在数据库中搜索给定的公司。
HTML<span id='errorCompany'></span>
<input type='text' name='search_query_bedrijf' id='search_query_bedrijf' onkeypress='checkForm('"query_bedrijf'")' placeholder='Search companies'>
<select id='bedrijf' name='bedrijf'>
PHP code is inside here to get all the data from the database
</select>
Javascript function checkForm(type){
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("bedrijf").innerHTML = xmlhttp.responseText;
}
}
var wildcard = document.getElementById("search_query_bedrijf").value;
xmlhttp.open("GET","getBedrijven.php?wildcard=" + wildcard,true);
xmlhttp.send();
if(document.getElementById("bedrijf").options[0].value == "NoData"){
document.getElementById("errorCompany").innerHTML = "Not a valid company.";
}else{
document.getElementById("errorCompany").innerHTML = "";
}
}
AJAX <?php
include("include/connect.php");
$wildcard = $_GET["wildcard"];
if($wildcard == ""){
$sqlSelectWildcardLeverancier = "SELECT * FROM companies";
}else{
$sqlSelectWildcardLeverancier = "SELECT * FROM companies WHERE company LIKE '%".$wildcard."%'";
}
if(!$res = $mysqli->query($sqlSelectWildcardLeverancier)){
trigger_error('Fout bij query: '.$mysqli->error);
}else{
while($row = $res->fetch_assoc()){
$companyID = $row["companyID"];
echo "<option value='$companyID'>".$row['company']."</option>";
}
}
$number_bedrijven = $res->num_rows;
if($number_bedrijven == 0){
echo "<option value='NoData' selected>No data found for this query</option>";
}
?>
现在这一切都像我应该的那样(它从通配符中获取数据等)当我输入像"WallmartQ"这样的东西时,它会给我"没有找到这个查询的数据",但我必须输入另一个字母"WallmartQE",所以它会在我的span中给我错误信息这里有一个gif来更好地解释它:https://i.stack.imgur.com/4BQxh.gif
只需在异步回调中删除options[0].value == "NoData"
检查-否则它将在响应到达之前执行,并将对"旧"数据进行操作。有关详细信息,请参见如何从异步调用返回响应?
function checkForm(type) {
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("bedrijf").innerHTML = xmlhttp.responseText;
if (document.getElementById("bedrijf").options[0].value == "NoData") {
document.getElementById("errorCompany").innerHTML = "Not a valid company.";
} else {
document.getElementById("errorCompany").innerHTML = "";
}
}
}
var wildcard = document.getElementById("search_query_bedrijf").value;
xmlhttp.open("GET", "getBedrijven.php?wildcard=" + wildcard, true);
xmlhttp.send();
}
相关文章:
- 我们是否有任何通用脚本/ jquery插件可以在通过ajax选项卡加载的内容上应用javascript
- 动态添加jquery ajax选项
- 如何最好地跨 ajax 选项卡传递输入文本字段
- 使用 JavaScript 和 AJAX 选项创建 Select HTML
- 如何将Ajax选项卡控件内部的文本框读取为javascript函数
- 在 jQuery AJAX 选项卡中使用 preventDefault() 和 on()
- jQuery Ajax选项-我需要建议
- jquery ui ajax选项卡-重新加载选项卡,或更改选项卡位置
- 为AJAX选项卡控件设置活动选项卡
- 在document.ready的Ajax选项卡中未加载旋转木马
- 通过PHP传递变量->Javascript→AJAX -选项
- 隐藏Iframe刷新Ajax选项
- 带ajax选项卡的TinyMCE
- Ajax选项卡设置在本地主机上不工作(EasyTabs)
- 使用Ajax'd选项卡内容,我在选项卡中的javascript无法工作
- jQuery小部件内部的jQuery ajax选项卡
- jquery自动补全器在ajax选项卡中不起作用
- 是否可以仅通过 $.ajax(选项)或 xhr.send(文件)上传文件
- Jquery ajax选项卡问题
- 我的“数据”在哪里?Razor语法中的Ajax选项