在我的php页面中,我有三个列表ul#line,ul#comment,ul#vote。
我打算进行ajax调用,比如
$.ajax({
type: "POST",
url: "ajax.php",
data: dataString,
cache: false,
success: function(html){
$("ul#line").append(html);
$("ul#lineli:last").fadeIn("slow");
}
Ajax.php类似于
if(isset($line)){
echo $line;
} elseif(isset($comment)){
echo $comment;
} elseif (isset($vote)){
echo $vote;
} else {
//do nothing;
}
我想要的是,如果回显的HTML是$ line,它将被附加到ul#line;如果是$ comment,则会附加到ul#comment;如果是$ vote,则会附加到ul#vote。
当前的ajax调用仅附加在ul#line。
为了达到这个目的,我需要做些什么改变?
答案 0 :(得分:2)
我会以JSON的身份传回信息。有类似的东西:
{updateList : nameOfList, output: $line/$output/$vote }
然后在成功时你可以做类似
的事情$('#'+html.updateList).append(html.output);
你必须确保让jQuery知道你正在发送并接受json作为类型。
答案 1 :(得分:2)
php
class DataObject
{
public $Type;
public $Text;
}
$json=new DataObject();
if(isset($line)){
$json->Type="line";
$json->Text=$line;
return json_encode($json);
} elseif(isset($comment)){
$json->Type="comment";
$json->Text=$comment;
return json_encode($json);
} elseif (isset($vote)){
$json->Type="vote";
$json->Text=$vote;
return json_encode($json);
} else {
//do nothing;
}
<强>的javascript 强>
$.ajax({
type: "POST",
url: "ajax.php",
dataType: 'json', //add data type
data: dataString,
cache: false,
success: function(data){
$("ul#"+data.type).append(data.text);
$("ul#"+data.type+"li:last").fadeIn("slow");
}
答案 2 :(得分:1)
您需要某种方法来区分$line
和$comment
的值。
我建议从PHP脚本中发回JSON:
if(isset($line)){
echo '{"line" : ' . json_encode($line) . '}';
} elseif(isset($comment)){
echo '{"comment" : ' . json_encode($comment) . '}';
} elseif (isset($vote)){
echo '{"vote" : ' . json_encode($vote) . '}';
} else {
//do nothing;
}
注意: PHP不是我最强的语言,因此可能有更好的方法来生成JSON响应
success: function(data){
if(data.line) {
$("ul#line").append(html);
$("ul#lineli:last").fadeIn("slow");
}
else if(data.comment) {
$("ul#comment").append(html);
$("ul#commentli:last").fadeIn("slow");
}
}