有关JSON的更多帮助 - php

我仍在尝试将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 …