在这个论坛的帮助下,我已经完成了一个使用jQuery和生成的JSON数据的表单。我想把它向前推进一步。
我写了一个用户FORM,它有一个文本框,当用户开始输入jquery函数运行的公司名称时,在数据表上查找并以json格式返回任何匹配。
然后,用户可以选择所需的公司名称,然后将其插入到textbax中。同时,campany徽标的名称将作为.png文件插入到另一个文本框中。
我的公司名称文本框和图片名称文本框:
<input name="ClientName[]" placeholder="Client name" class="imaindatesel" id="search-box_1" type="text" size="60" maxlength="40" />
<input name="CompanyImage[]" type="text" id="company_image_1" class="ui-autocomplete-input"/>
我的jquery功能:
$(document).ready(function() {
$('#search-box_1').autocomplete({
source: function( request, response ) {
$.ajax({
url : 'check_name.php',
dataType: "json",
data: {
name_startsWith: request.term//,
},
success: function( data ) {
response( $.map( data, function( item ) {
var code = item.split("|");
return {
label: code[0],
value: code[0],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 3,
select: function( event, ui ) {
var names = ui.item.data.split("|");
$('#company_image_1').val(names[1]); //<---- I would like to use this as a PHP variable
$("#SelectView").hide();
// The line below is all I added to get the result I needed.
$("#LookUpCompanyImage").html("<img src=\"../../../conf/conf_images/boards/" + names[1] + "\">");
}
});
})
我的PHP脚本
$query = $db->query("SELECT RecordID, CompanyName, ImageName FROM conf_image_depository WHERE CompanyName LIKE '".$_GET['name_startsWith']."%' GROUP BY CompanyName ORDER BY CompanyName ASC");
$data = array();
while ($row = $query->fetch_assoc()) {
//$data[] = $row['CompanyName']. " " . $row['ImageName'];
$name = $row['CompanyName'].'|'.$row['ImageName'];
array_push($data, $name);
}
//return json data
echo json_encode($data);
ajax调用的结果:
["British Airways|British-Airways.png","British Assessment Bureau|british-assessment-bureau.png","British Gas|BritishGas.png","British Sugar|BritishSugar.png"]
目前我有一个文本框,其中填充了“$('#company_image_1')。val(names [1]);”。
我需要做的是使用“$('#company_image_1')。val(names [1]);”来自jquery函数并将其转换为PHP变量。
原因是,在用户选择了jquery函数返回的公司后,JSON包含公司名称和公司徽标的图像名称。然后我想做两件事,在屏幕上显示图像并在MySQL插入中使用图像的名称。
再次,非常感谢您的时间。
答案 0 :(得分:1)
我会在select函数中创建另一个ajax调用,它将图像名称发布到php。
所以你需要创建一个像这样的ajax调用:
$.ajax({
url : 'save_name.php',
dataType: "POST", // Set the dataType to POST, so we can send data to php
data: {
name: names[1],
},
success: function( data ) {
console.log('successfully sent the name');
}
});
然后在php文件save_name.php中,您可以捕获$ _POST变量并从中检索名称值。这样的事情。
if(isset($_POST['name'])){
// Post name is set so we can use it.
$name = $_POST['name'];
}
当然,您使用sql以名称值更新数据库。
答案 1 :(得分:0)
我已经解决了如何解决我的问题。我需要做的就是添加以下代码行: $( “#选择查看”)隐藏()。 $( “#LookUpCompanyImage”)的HTML( “”);
我编辑了我的帖子以反映我所做的更改