javascript - AJAX - 在选择输入中更改事件时更改元素的 innerHTML 不起作用
问题描述
<select>
当用户在元素中进行选择并在元素中显示通过 AJAX 获得的所述值但它不起作用时,我试图从数据库中获取产品的值,如果我去precio.php?q=PRODUCTO%201
它确实给了我想要的10
结果让我认为 php 文件中的代码是正确的,问题必须存在于<script>
部分或<select>
元素中。
这是我的 AJAX 函数<head>
<script>
function precioProd(str) {
if (str=="") {
document.getElementById("precio").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("precio").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "precio.php?q="+str, true);
xmlhttp.send();
}
}
</script>
这是我的<select>
元素<body>
<div class="form-group row">
<label class="col-sm-4 col-form-label font-weight-bold">Elige un Producto</label><br>
<div class="col-sm-8">
<select class="custom-select my-1 mr-sm-2" id="producto" name="producto" onchange="precioProd(this.value)" required>
<option selected>Elegir...</option>
<?php require $_SERVER['DOCUMENT_ROOT'].'/php/fetch_lista_productos_compra.php'; ?>
</select>
</div>
</div>
<h3 id="precio" name="precio"></h3>
这是内容precio.php
<?php
require $_SERVER['DOCUMENT_ROOT'].'/php/db_key.php';
$con = mysqli_connect($servername, $username, $password, $dbname);
$q = $_GET["q"];
$sql = "SELECT precio FROM productos WHERE titulo = '".$q."'";
$result = mysqli_query($con,$sql);
while($row = mysqli_fetch_array($result)) {
echo $row['precio'];
}
?>
一如既往,我们将不胜感激任何形式的帮助,并感谢您抽出宝贵的时间。
解决方案
}
您在脚本末尾添加了一个附加项。以下是可以的。
<script>
function precioProd(str) {
if (str=="") {
document.getElementById("precio").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
var xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("precio").innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "precio.php?q="+str, true);
xmlhttp.send();
}
</script>
推荐阅读
- python - 从python中的字典中删除多个键值对
- azure - Azure 批处理不会刷新池中的缓存容器
- contiki - 如何在 Contiki RPL 经典中让所有首选父节点达到某个节点的根目录?
- ios - iOS - 获取设备的 WIFI IP 地址
- python - ValueError:int() 以 10 为底的无效文字:for map(int, list) in Python 错误
- swift - 使用外部类方法作为 NSMenuItem 的操作?
- html - 有没有办法设置成为预制 HTML链接的电子邮件标签的样式?
- python - Python>bs4 根据下拉列表中的选择抓取网站
- windows - 访问被拒绝。由于 Windows 10 上的权限,如何解决 docker cp 问题?
- .net - 动态更改视图组件