0

我需要在php中创建一个数组,然后分配给java脚本函数。我需要这样的东西我需要这个数组和它看起来一样

$users = array(
array('username' => 'user1', 'email' => 'user1@your-host.com'),
array('username' => 'user2', 'email' => 'user2@your-host.com'),
array('username' => 'user3', 'email' => 'user2@your-host.com'),
...
);

对于 $users 数组,我尝试了此代码

 $users = array();
while($rw = $objApp->dbrow($res))
{
 $users []=array('username'=>$rw['username'],
      'email'=>$rw['email']
);
}

这个可以吗?

如果是,那么我想将相同的数组传递给 javascript 函数...这是我尝试过的

  objJS::importUsers( <?php echo json_encode($results) ?>);

这很简单,我的代码中有什么问题导致它不起作用

4

3 回答 3

3

如果您想将任意对象或数组从 PHP 传递到 Javascript,您可能想尝试 JSON。(未经测试)

<?php
    $data = array('whatever');
    $json = json_encode($data);
?>

<script>
    var json = '<?=$json?>';
    var obj = JSON.parse(json);

    // do with your obj.
</script>

PHP json_encode

Javascript JSON.parse

请注意,它仅在您的对象/数组不包含任何包含该'字符的键/值时才有效。


编辑:看来您可能混淆了语法。

Javascript 没有::运算符。

我相信

objJS::importUsers( <?php echo json_encode($results) ?>);

实际上应该是

objJS.importUsers( <?php echo json_encode($results) ?>);

但是,由于您没有告诉我们是什么objJs::importUsers,我们只能胡乱猜测。它是 Javascript 函数,还是 PHP 类方法,还是别的什么?

如果它是一个 PHP 函数,我想知道你为什么需要将它传递给 Javascript - 直接调用该方法!

编辑所以我在这里阅读了其他帖子的评论,您想将 PHP 传递array给 Javascript 并显示为 Javascript array。不幸的是,它们并不相同。Javascriptarray键不能真的是字符串(如'email'),它们实际上是 Javascriptobjects

于 2013-07-21T07:25:46.523 回答
1
<?php
    $result =['your entire array']
    echo json_encode($result);
?>

在你的 javascript 中!!!

var JS_ARRAY=[];
$.ajax({
            url: "../xyz/xyz.php",
            type: 'POST',
            data: {//your data to be send},
            dataType: "json",
            success: function(data) {
                     console.log(JSON.stringify(data)
                     JS_ARRAY.push(JSON.stringify(data));
}
});
//use this JS_ARRAY in you js function. 
于 2013-07-21T07:32:42.243 回答
1
    <?php
    $users = array(
        array('username' => 'user1', 'email' => 'user1@your-host.com'),
        array('username' => 'user2', 'email' => 'user2@your-host.com'),
        array('username' => 'user3', 'email' => 'user2@your-host.com'),
    );
    $users_json_str = json_encode($users);
    ?>
    <script type="text/javascript">
    // here is you java script
    // the variable users is the same with the $users in your php code
    var users = <?php echo "$users_json_str";?>;

    // you can access the first username
    var first_user_name = users[0]['username'];
    </script>
于 2013-07-21T07:32:43.230 回答