Php json_编码在ajax上打印html块成功,需要建议吗
我正在学习如何使用AJAX和PHPPhp 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){
json\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){
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+" <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