你好我遵循了本教程,其中使用jquery UI生成令牌Facebook,例如:http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/
我的问题是,我需要通过Json传递两个值:ID和NAME:服务器端脚本如下所示:
header('Content-Type: text/html; charset=iso-8859-1', true);
include($_SERVER['DOCUMENT_ROOT'].'/inrees/inrees/communaute/includes/_db.php');
$param = $_GET["term"];
$query = mysql_query("SELECT * FROM comm_carnet, in_emails
WHERE carnet_iduser=emails_id
AND emails_id!='".$_COOKIE['INREES_ID']."'
AND emails_nom REGEXP '^$param'");
//build array of results
for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {
$row = mysql_fetch_assoc($query);
$friends[$x] = array("name" = > $row["emails_nom"], "id" = > $row["emails_id"]);
}
//echo JSON to page
$response = $_GET["callback"]."(".json_encode($friends).")";
echo $response;
来自服务器端脚本的回显是:
([{"name":"dupont","id":"34998"},{"name":"castro","id":"34996"},{"name":"castelbajac","id":"34995"}])
(这正是我所需要的)
现在,我传递的是“名称”数组,但不需要传递“ id”,它需要是数据库中具有相应ID的隐藏输入,完成对php的调用的html页面如下所示:] >
//attach autocomplete $("#to").autocomplete({ //define callback to format results source: function (req, add) { //pass request to server $.getJSON("messages_ajax.php?callback=?", req, function (data) { //create array for response objects var suggestions = []; //process response $.each(data, function (i, val) { suggestions.push(val.name); }); //pass array to callback add(suggestions); }); }, //define select handler select: function (e, ui) { //create formatted friend var friend = ui.item.value, span = $("<span>").text(friend), a = $("<a>").addClass("remove").attr({ href: "javascript:", title: "Remove " + friend }).text("x").appendTo(span); $("<input />", { value: "id", type: "hidden", name: "id" }).appendTo(span); //add friend to friend div span.insertBefore("#to"); }, //define select handler change: function () { //prevent 'to' field being updated and correct position $("#to").val("").css("top", 2); } }); //add click handler to friends div $("#friends").click(function () { //focus 'to' field $("#to").focus(); }); //add live handler for clicks on remove links $(".remove", document.getElementById("friends")).live("click", function () { //remove current friend $(this).parent().remove(); //correct 'to' field position if ($("#friends span").length === 0) { $("#to").css("top", 0); } });
所以基本上就是您看到评论的地方:
"//define select handler"
需要做些什么,但我不能做!我添加了一行:
$("<input />", {value:"id", type:"hidden", name:"id"}).appendTo(span);
但它不会获取我的数组“ id”,因此不提供任何帮助。
问候
您好,我已遵循本教程,其中使用jquery UI生成令牌facebook,例如:http://net.tutsplus.com/tutorials/javascript-ajax/how-to-use-the-jquery-ui-autocomplete-widget/我的问题是...
您的代码应为:
因此,您似乎只向建议列表添加了name
,而不是将包含data
和name
成员的整个id
对象。而不是这样做: