我仍在尝试将JSON与php和jquery结合使用。
我有一个查询数据库的页面,以获取即将到来的生日的所有用户(忽略sql,仅此示例)。代码获取数据库返回值并将其放入数组,如下所示:
Array (
[idnum] => Array (
[0] => 3
[1] => 10
[2] => 74
)
[name] => Array (
[0] => Betty Smith
[1] => Jim Pierce
[2] => Sam Smith
)
)
我想将此数据放入某个jQuery中,以html select语句或类似的方式显示给用户,以便他们可以进行选择,然后保留一个IDnum供以后的代码/ ajax使用。
我的代码全部如下:
<?php
session_start();
$sql_server = 'xxxx';
$sql_db = 'xxxx';
$sql_username = 'xxxx';
$sql_password = 'xxxx';
$db = mysql_connect("$sql_server", "$sql_username", "$sql_password") or die ("Error connecting to database.");
mysql_select_db("$sql_db", $db) or die ("Couldn't select the database.");
list($currentdate) = mysql_fetch_row(mysql_query("SELECT currentdate FROM calendar",$db));
/////////////////////////
$result = mysql_query("SELECT IDvalue, name FROM people where birthday => $currentdate",$db);
$rowcheck = mysql_num_rows($result);
//echo $rowcheck;
$birthdays = array();
$i = '0';
while ($row = mysql_fetch_assoc($result)){
foreach ($row as $col => $val){
if ($col == 'IDvalue') {
//print " $val ";
$birthdays['idnum'][$i] = $val;
}
if ($col == 'name') {
$birthdays['name'][$i] = $val;
}
}
$i++;
}
echo "</br></br><input type=\"button\" id=\"showbirthdays\" value=\"Show birthdays\"/>";
?>
<html>
<head>
</head>
<body>
<script src="jquery.js" type ="text/javascript"></script>
<script>
$('#showbirthdays').click(function() {
var jsonobj = <?php echo json_encode($birthdays); ?>;
//alert (jsonobj) // this does not seem to work. just gives [object Object]
// Here's where i'm really lost. I would like to use jquery to display
// a select box that shows the name of birthday people, and uses their IDnum as an identifer for further code.
// some kind of foreach with an html.push, and then append to a div on the page...?
});
</script>
</body>
</html>
}
?>
我非常想确切地了解如何在jquery中获取该数组数据并使用它。或者,如果有人建议以其他方式移动数据,那么我对替代方法很感兴趣。
编辑:
$.each(jsonobj, function(){
//Here `this` will point to each element of the object
alert (this);
});
很棒,给我这样的输出:“贝蒂·史密斯,吉姆·皮尔斯,山姆·史密斯”。
$.each(jsonobj.name, function(){
这也有效,并为我提供了带有名称的单独输出,
这是我要找的东西:
var html = [];
html.push('<select name="birthdaynames" id="birthdayselect">')
$.each(jsonobj, function(){
html.push('<option name="asdf" id="this.IDnum">' + this.name + '</option>')
});
html.push('</select>')
$('#showbirthdays').append(html.join(''));
如何使用(this)获得这些特定值?
参考方案
当您尝试警告JavaScript对象时,[object Object]
是正确的。
尝试alert(jsonobj.idnum)
或alert(jsonobj.name)
。
要创建<select>
,可以使用$.each
遍历数据。
var $sel = $('<select name="birthdaynames" id="birthdayselect">');
$.each(jsonobj.idnum, function(i,v){
var name = jsonobj.name[i];
var $opt = $('<option/>').val(v).text(name);
$sel.append($opt);
});
$('#showbirthdays').append($sel);
CodeIgniter更新查询被执行两次 - php我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…
故障排除“警告:session_start():无法发送会话高速缓存限制器-标头已发送” - php我收到警告:session_start()[function.session-start]:无法发送会话缓存限制器-标头已发送(错误输出开始如果我将表单数据提交到其他文件进行处理,则可以正常工作。但是,如果我将表单数据提交到同一页面,则会出现此错误。请建议<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0…
通过php表单修改我的xml文件 - php这是我的xml文件和下面的php代码。我输入了一个输入类型,它将按名字搜索学生。然后将显示有关特定学生的信息,并且将显示另一个按钮更新。问题是我想在那之后修改信息。如何通过标签名称获取元素,以便可以修改有关特定学生的信息?<students> <student> <firstname>John</firstname&…
使用PHP包含时的淡入淡出过渡 - php我正在尝试使用jQuery或CSS(或其他方式!)在DIV中包含的php页面上创建淡入淡出或滑动过渡。我四处搜寻,发现了很多淡入淡出过渡的示例,这些实例彼此淡入淡出div或隐藏内容淡入淡出,但是这种情况略有不同。我有一个DIV,其内容由导航栏控制。选中后,每个页面都可以使用PHP成功地包含在div中,但我想使内容淡入和淡出。关于如何在页面更改之间进行漂亮过渡…
AJAX调用只能与$(document).on('click')一起使用 - php我有一个显示数据库条目的表。用户能够为每一行打开一个弹出菜单。选项之一是删除数据库条目,并且该表应通过AJAX调用相应地刷新。只要有人单击#delete-toggle中的table-popup,我就会在HTML页面上进行AJAX调用(table-popup是div,当有人单击每行中存在的表中的table-edit-button时出现的表): <div …