我试图在用户填写输入字段后使用JavaScript显示图像。当使用输入type =“ text”时,我得到了显示URL的信息,但是当我尝试将其更改为img标签时,它将返回[object Object]。这可能吗?
input.php
<div class='col1;'> <img style='width:20%' src="" alt="" id="img" ></div>
<script type="text/javascript">
$(document).ready(function() {
function myrequest2(e) {
var mn = $('.auto2').val();
var pn = $('.auto').val();
$.ajax({
method: "GET",
url: "autofill2.php",
dataType: 'json',
data: {
inputmn: mn,
inputpn: pn
},
success: function( responseObject ) {
var x = $('#img').val( responseObject.image);
document.getElementById("img").src = x;
document.getElementById("img").alt = x;
},
failure: function() {
alert('fail');
}
});
}
$('#mn').change(function(e) {
e.preventDefault();
myrequest2();
});
});
</script>
autofill2.php
<?php
$conn = mysqli_connect($host, $username, $password, $db);
$inputmn = $_GET['inputmn'];
$inputpn = $_GET['inputpn'];
$return = mysqli_query($conn, "SELECT image FROM parts WHERE ModelNum = '$inputmn' and PartNum = '$inputpn' LIMIT 1");
$rows = mysqli_fetch_array($return);
$formattedData = json_encode($rows);
print $formattedData;
?>
此外,我知道我需要准备好的陈述。只是先让它开始工作
答案 0 :(得分:1)
您为您的用例错误地调用了responseObject
参数。 x
变量是jQuery
选择器。该选择器不包含图像数据。由于您将图像src
设置为选择器(无效),因此它退回到了alt
文本。由于还将alt
文本设置为jQuery
选择器,因此运行了toString()
函数,因此您看到[Object object]
为jQuery
选择器没有覆盖的toString()
。解决此问题的方法:将x
更改为responseObject.image
,然后将alt
更改为图像描述。
success: function( responseObject ) {
var x = responseObject.image // assuming .image is img data
document.getElementById("img").src = x;
document.getElementById("img").alt = "Nice image";
},
一个小提示,您正在与jQuery
混合搭配。如果要继续使用jQuery
,可以将document.getElementById("img") = x
更改为$("#img").attr("src", x);
答案 1 :(得分:1)
在这些行中,您进行了错误的分配。
var x = $('#img').val( responseObject.image);
document.getElementById("img").src = x;
document.getElementById("img").alt = x;
您应该将其更改为:
document.getElementById("img").src = responseObject.image;
document.getElementById("img").alt = responseObject.image;