2015-06-13 14 views
0

所以我会尽可能简单地将它保留下来,但对我而言,我还在学习。一次性在页面的两个部分预先添加html数据

我有ajax设置提交代码来创建一个新的类别的数据库,然后它prepends回到页面,并显示它没有页面刷新。我甚至可以同时在页面的不同区域提取完全相同的数据。

这里是我卡住的地方。我的目标是找到一种方法来预先安排两个不同的数据集。一个在新的类别下,就像它已经做的那样,然后另一个只是在创建页面的一个新的后期部分的领域。我认为这可能是元素ID或东西的东西,但我找不到什么我正在寻找。

那么是否有可能采取前置(html)并将数据不同地提交给两个页面区域?

这是我提交的代码。

<script type="text/javascript" > 
    $(function() { 
     $(".update_button").click(function() { 
      var boxval = $("#category").val(); 
      var boxval = encodeURIComponent(boxval); 
      var dataString1 = 'category='+ boxval; 

      var dataConfirm = 'newFAQCategory=true'; 
      var dataString = dataString1+'&'+dataConfirm; 
      if(boxval=='') { 
       alert("Please Enter A Title"); 
      } else { 
       $.ajax({ 
        type: "POST", 
        url: "ajax/faqCN.php", 
        data: dataString, 
        cache: false, 
        success: function(html){ 
         $("ol#update").prepend(html); 
         $("select#faqc_id").prepend(html); 
         $("ol#update li:first").slideDown("slow"); 
         document.getElementById('category').value=''; 
         document.getElementById('category').focus(); 
        } 
       }); 
      } return false; 
     }); 
    }); 


</script> 
+0

而不是返回HTML可以返回一个JSON字符串与2个不同的HTML集。那么在ajax成功代码中,你可以放入.prepend(html.category) – Brett

+0

你会怎么做呢?我将它提交给一个只运行mysqli查询的php文件,然后回显出返回的html。 – logicK

回答

2

要实现@布雷特的建议,这是不是只发送HTML代码到您的AJAX请求,发送带有HTML的两片JSON,你需要像这样:

PHP AJAX响应:

$returnValue = array(); 
$returnValue["html1"] = "<b>html for new categories</b>"; 
$returnValue["html2"] = "<b>html for new post section</b>"; 
exit(json_encode($returnValue)); 

然后在JavaScript中你必须:

$.ajax({ 
    type: "POST", 
    url: "ajax/faqCN.php", 
    data: dataString, 
    dataType: "json", // type of data that you're expecting back from the server 
    cache: false 
}) 
.done(function(data) { 
    // Put the HTML received in the right place 
    $("#html1").prepend(data.html1); 
    $("#html2").prepend(data.html2); 
}); 

最后一个未e,“成功”回调从jQuery 1.8开始已弃用,所以建议使用.done()代替。

相关问题