Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_编码在ajax上打印html块成功,需要建议吗_Php_Ajax_Json - Fatal编程技术网

Php json_编码在ajax上打印html块成功,需要建议吗

Php json_编码在ajax上打印html块成功,需要建议吗,php,ajax,json,Php,Ajax,Json,我正在学习如何使用AJAX和PHPjson\u encode()。我使用json\u encode()作为AJAXPOST响应返回一个数组: $.post("<?php echo base_url();?>index.php/post/post_insert_ajax/",{ text: post_wall, type:type, entity_id:entity_id, poster_id:poster_id }, function (data){

我正在学习如何使用AJAX和PHP
json\u encode()
。我使用
json\u encode()
作为AJAX
POST
响应返回一个数组:

$.post("<?php echo base_url();?>index.php/post/post_insert_ajax/",{
        text: post_wall, type:type, entity_id:entity_id, poster_id:poster_id
    },
    function (data){
        var postObj = $.evalJSON(data);                                 
        $("ul#post_already").prepend(//something);
        $("ul#post_already li:first").slideDown("slow");
        $('#post_wall').val("");   
    });
我已经尝试将所有这些都放到
.prepend()
中,但它似乎不是这样工作的,我应该怎么做才能实现这一点?多谢各位

更新:事实证明,我遗漏了一些代码中的连接符号,因此在此同时,我的解决方案是:

block = "<b>"+user_name+"</b> posted on ";
block += "<br/><a id='"+postObj.post_id+"' href='<?php echo base_url();?>board/?p="+postObj.post_id+"' >"+postObj.post_text+"</a>";
block += "<br />Created on: "+postObj.created_timestamp+"&nbsp;<a class='showCommentBox' id='"+postObj.post_id+"' href='#' >Comment</a>";
block += "<div id='commentContainer-"+postObj.post_id+"' class='commentContainer' style='display:none;'>";
block += "<form class='submit_comment' id='"+postObj.post_id+"' action='#'><textarea name='text' id='commentText-"+postObj.post_id+"' class='commentText'></textarea>";
block += "<input type='submit' name='submit' value='Post Comment' id='"+postObj.post_id+"' class='submit_comment' />";
block += "<input type='hidden' name='user_id' id='user_id' value='"+postObj.user_id+"' />";
block += "</form></div><ul id='comment_post"+postObj.post_id+"'></ul></li>";

目前它还可以工作,但我仍然认为这是一条凌乱的线,不是一个最佳实践,是否有任何解决方法可以做到这一点???

就我个人而言,我喜欢使用该方法将JSON数组转换为JavaScript可以使用的数据。那么,回到答案,假设我们有一个来自服务器的类似这样的数组,在它被JSON编码之前:

$array = array('one' => '1', 'two' => '2', 'three' => '3', 'four' => '4');
您可以使用jQuery获取数据,然后像这样迭代数据:

var HTML;
var returnedData = $.parseJSON(data);

$.each(returnedData, function(key, value) {
  HTML += '<li>' + value + '</li>';
});

$('.unorderedList').append(HTML);
var-HTML;
var returnedData=$.parseJSON(数据);
$.each(返回的数据、函数(键、值){
HTML+='
  • '+value+'
  • '; }); $('.unorderedList').append(HTML);
    因此,这是从服务器获取数据并将其附加到列表的基本方法。当然,您可以更改生成的输出,甚至使JSON数组复杂化,以获得更奇特的输出

    希望有帮助,

    spryno724

    虽然很难提供直接指针而不实际了解它作为一个整体是如何工作的,但是页面上可能已经有了这些元素

    <span class="userName" style="font-weight:bolder"></span> posted on <br />
    <a class="viewer" ></a><br />
    Created on: <span class="created"></span>
    <!-- ... and so on //-->
    
    取决于您正在做什么,它可能不起作用,但如果您试图避免看起来凌乱的JavaScript,它是我知道的唯一其他选择

    希望有帮助,

    spryno724

    好家伙谢谢,我要试试这个,然后尽快回复你,谢谢你没问题,伙计。希望它对你有用。哦而且,使用上述技术,不需要“jquery.json.js”文件来分解数组。我上面演示的所有功能都内置在jQuery核心中。虽然与我想要的不完全一样,但我从您向我指出的内容中获得了新的知识:),无论如何,我如何简化更新中混乱的代码?谢谢,你可以。。。请查看我下面的帖子以了解解释。
    var HTML;
    var returnedData = $.parseJSON(data);
    
    $.each(returnedData, function(key, value) {
      HTML += '<li>' + value + '</li>';
    });
    
    $('.unorderedList').append(HTML);
    
    <span class="userName" style="font-weight:bolder"></span> posted on <br />
    <a class="viewer" ></a><br />
    Created on: <span class="created"></span>
    <!-- ... and so on //-->
    
    $('span.userName').text(user_name);
    $('a.userName').attr('id', postObj.post_id);
    $('span.created').text(postObj.created_timestamp);
    // ... and so on