有人从自动填充选项列表中选择一个项目后,如何将该项目的ID存储为要在其他php脚本中使用的变量?
当前的PHP脚本:
$rs = mysql_query('select label, id from table where label like "'. mysql_real_escape_string($_REQUEST['term']) .'%" order by label asc limit 0,10', $dblink);
$data = array();
if ( $rs && mysql_num_rows($rs) )
{
while( $row = mysql_fetch_array($rs, MYSQL_ASSOC) )
{
$data[] = array(
'label' => $row['label'] ,
'value' => $row['id']
);
}
}
echo json_encode($data);
flush();
我的目标是使用id变量作为表名的占位符
答案 0 :(得分:2)
咦? Php在服务器上运行,JavaScript / jQuery在客户端上运行。你不能直接从JavaScript设置任何PHP变量。
但是,如果您对服务器进行AJAX调用并将选定的项ID作为参数包含在内,则服务器可以记下所选的id(例如,作为当前用户会话的一部分)并返回参考它后续请求。
答案 1 :(得分:1)
获取自动完成值ID的脚本
<script type="text/javascript">
$(function() {
$('#location').val("");
$("#location").autocomplete({
source: "getLocation.php",
minLength: 1,
select: function(event, ui) {
$('#locationid').val(ui.item.id);
}
});
});
</script>
<form action="" method="post" name="addvendor" id="addvendor">
<label>Location:</label>
<input type="text" name="location" id="location" /><span id="locationInfo"></span>
<input type="hidden" name="locationid" id="locationid" />
</form>
获取获取位置和ID值的页面
<?php
include('../config/config.php');
$return_arr = array();
/* If connection to database, run sql statement. */
$fetch = mysql_query("SELECT location_id,location_name FROM location where location_name like '" . mysql_real_escape_string($_GET['term']) . "%'");
/* Retrieve and store in array the results of the query.*/
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array['id'] = $row['location_id'];
$row_array['value'] = $row['location_name'];
//$row_array['abbrev'] = $row['country_id'];
array_push($return_arr,$row_array);
}
echo json_encode($return_arr);
?>
注意: 包括js文件bootstrap.min.js 对于样式
<link rel="stylesheet" href="http://www.jensbits.com/demos/bootstrap/css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css">
有关更多信息,请使用该链接 http://www.jensbits.com/demos/autocomplete/