将html推入已创建的json数组中

时间:2017-03-01 14:13:49

标签: php arrays json

我试图获取我的HTML' commentlinktoggle'通过我的其余帖子数组来完成。昨天我开始学习Json,而且大部分时间我都没有做得太糟糕。但是我试图让我的头围绕array_push,因为我认为我需要传递这个不在我的数据库$ row loop中的变量。所以这就是我拥有的以及我需要做的事情。 / p>

这是我希望退出帖子的json回复

A(1,2,1,1,1,1,1,1)

但它会像这样出现。使用commentlinktoggle清楚地在posts数组之外。

{
    "posts": {
    "sharedcontent_userstimestamp": "<div id='time' title='Posted on Thursday  01 Jan 1970 at 01:00AM '>&#8986;2017 years <\/div>",
    "streamitem_timestamp": "<div id='time' title='Posted on Thursday  23 Feb 2017 at 07:55PM '>&#8986;5 days <\/div>",
    "1": {
    "streamitem_id": "1178",
    "streamitem_content": "Uploaded a new picture<hr>To Album: <a href=photolist.php?uid=3&aid=16>tee<\/a><br\/><br\/>tee",
    "streamitem_type_id": "4",
    "streamitem_timestamp": "2016-12-11 02:58:52",
    "streamitem_collect": "<li><a id=\"collectpostlink1178\" 
    "commentlinktoggle": "<div id='streamcomment' style='cursor:pointer;display:block;' class='toggleon1178'><a style='cursor:pointer;' id='commenttoggle_1178' onclick=\"toggle_comments('comment_holder_1178');swapcommentlabel(this.id);\"><div id='loadcommentcount1178'>Comments 1<\/div><\/a><\/div>"
},

这是我的PHP代码,我尝试使用array_push来推送。我知道我弄得一团糟。但是,如果有人可以解释我哪里出错了这将是一个很好的帮助我将来参考。

{
    "posts": {
    "sharedcontent_userstimestamp": "<div id='time' title='Posted on Thursday  01 Jan 1970 at 01:00AM '>&#8986;2017 years <\/div>",
    "streamitem_timestamp": "<div id='time' title='Posted on Thursday  23 Feb 2017 at 07:55PM '>&#8986;5 days <\/div>",
    "1": {
    "streamitem_id": "1178",
    "streamitem_content": "Uploaded a new picture<hr>To Album: <a href=photolist.php?uid=3&aid=16>tee<\/a><br\/><br\/>tee",
    "streamitem_type_id": "4",
    "streamitem_timestamp": "2016-12-11 02:58:52",
    "streamitem_collect": "<li><a id=\"collectpostlink1178\" style=\"cursor:pointer;color:#000;\" onclick=\"collectpost(2309);\">Collect<\/a><\/li>",       
    }
    },
    "count": 9,
    "commentlinktoggle": "<div id='streamcomment' style='cursor:pointer;display:block;' class='toggleon2309'><a style='cursor:pointer;' id='commenttoggle_2309' onclick=\"toggle_comments('comment_holder_2309');swapcommentlabel(this.id);\"><div id='loadcommentcount2309'>Comments 3<\/div><\/a><\/div>"
}

也许这也有帮助,我的函数循环我追加我的数据

$rowcount = mysqli_num_rows($result);
while ($row = mysqli_fetch_array($result)) {

    $json = array(
                'posts' => array(),
                'count' => $rowcount,
                'commentlinktoggle'  => $sendcommentlinktoggle,
            );
    $sendcommentlinktoggle = "Some html in here";

    array_push($posts, array('commentlinktoggle'  => ));

    $posts[] = array(
                //Post information and ids
                'streamitem_id' => $row['streamitem_id'],
                'streamitem_content' => $row['streamitem_content'],
                /and so on...
            );
    $rowcount++; 
}
$json['posts'] = $posts;
echo json_encode($json);

如果有人需要更多信息,请随时提出,我会尽我所能帮助。

1 个答案:

答案 0 :(得分:1)

您正在推送$post[]而不是您稍后添加的元素 $posts[] = array( //Post information and ids 'streamitem_id' => $row['streamitem_id'], 'streamitem_content' => $row['streamitem_content'], //and so on... // Add the additional content 'commentlinktoggle' => $sendcommentlinktoggle, ); ,这就是为什么元素会添加到单个帖子之外,在同一级别上但是使用关联键

最简单的解决方案是在添加其余内容的位置添加元素:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('WEBSITE_URL')