我有一个动态创建行(的)的表 - 每个都是一组输入,其中一个是自动完成输入字段,用户可以在其中搜索一个项目并给出一个选项列表,当他们选择一个时,他们的项目的详细信息填充在所有剩余的字段中,并且从数据库中调用与他们的选择相对应的图像。
这是我的数据库调用查询:
$return_arr = array();
$param = $_GET["term"];
$fetch = mysql_query("SELECT * FROM crd_jshopping_products WHERE `name_en-GB` REGEXP '^$param' LIMIT 5");
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['product_name'] = $row['name_en-GB'];
$row_array['category'] = $row ['meta_keyword_en-GB'];
$row_array['jshop_code_prod'] = $row['product_ean'];
$row_array['_ext_price_html'] = number_format($row['product_price'],2);
if (!empty($row['product_thumb_image']) AND isset($row['product_thumb_image'])){
$row_array['image'] = $row['product_thumb_image'];
}else {
$row_array['image'] = 'noimage.gif';
}
array_push( $return_arr, $row_array );
}
mysql_close($conn);
echo json_encode($return_arr);
在我的 JQuery 中,我所要做的就是放置这个:
$('#prodImage').append('<img class="imgLoads" src="/components/com_jshopping/files/img_products/' + ui.item.image + '" >');
所以它会将Image放入div ID:prodImage。
我尝试过 IF 语句:
if ($('#prodImage').length)
{
$('#prodImage').append('<img class="imgLoads" src="/components/com_jshopping/files/img_products/' + ui.item.image + '" >');
}
else {
$('#prodImage').remove();
}
和 ...
if (!$('#imgLoads').length)
{
$('#prodImage').append('<img class="imgLoads" src="/components/com_jshopping/files/img_products/' + ui.item.image + '" >');
}
else if($('#imgLoads').length){
$('#prodImage').remove();
}
还有一大堆变体和replaceWith()
陈述,但无济于事。
您可以在此处查看实时界面:
http://cardoso.co.za/index.php/login-shop
用户名:stackUser
密码:demo
发生的情况充其量只是图像一个接一个地堆叠在一起......
任何帮助表示赞赏。我也尝试过以下帖子,但没有成功:( 使用 jQuery 自动完成更改图像 src
为了响应 RST 的一段代码,这是我尝试实现它的方式,以便它只更改自动完成 ifield 更改的确切 TR 中的图像:
$(this).closest('#product_name').blur(function(){
$('.imgLoads').attr('src','/components/com_jshopping/files/img_products/' + ui.item.image);
});
这就是我解决问题的方法:
$(this).closest('tr').find('#product_name').blur(function(){
$(this).closest('tr').find('.imgLoads').attr('src','/components/com_jshopping/files/img_products/' + ui.item.image);
$(this).closest('tr').find ('.imgLoads').attr('style','border-radius:8px;-webkit-border-radius:8px;-moz-border-radius:8px;border:solid 1px #CF3;');
});