首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示投票结果以代替投票区域

显示投票结果以代替投票区域
EN

Stack Overflow用户
提问于 2012-07-05 23:30:38
回答 2查看 639关注 0票数 1

我试图在与投票问题相同的区域和页面上显示投票结果,而不重新加载整个页面。我能够得到结果并在一个新的页面中显示它们,但我不知道如何在我有问题的地方替换html,并将其替换为html。

(带有投票问题)

代码语言:javascript
复制
<div id="poll-area">
    <!-- Voting poll -->
    <fieldset>
        <form action="javascript:void(0);" id="pollid" name="myform" method="POST">
            <label><input type="radio" name="answer" value="left" id="option_left" />Yes</label>
            <label><input type="radio" name="answer" value="right" id="option_right" />No</label>
            <input type="submit" name="submit" id="submit" value="Vote" />
            <input type="hidden" name="id" value="pollid" />
        </form>
    </fieldset>
    <!-- End voting poll -->
</div>

处理轮询的AJAX调用:

代码语言:javascript
复制
var $j = jQuery.noConflict();
jQuery(document).ready(function($j) {
    $j("form").submit(function(){
        var str = $j(this).serialize();
        $j.ajax({
            url: "poll_vote.php",
            type: "POST",
            data: str,
            cache: false,

            success: function(result) {
                window.location.replace("poll_results.php");
            }
        });
        return false;
    });
});

我猜想是*window.location.replace(" poll_results.php ")*想用poll_results.php中的#轮询区域替换poll_results.php中的HTML,但我不知道如何做到。

投票结果的(poll_results.php中包含的内容)

代码语言:javascript
复制
<div id="poll-area">
   <fieldset>
       <legend>Results</legend>
       <ul>
           <li>
               <span class="total-votes">Yes</span>
               <br />
               <div class="results-bar" style="width:52%;">
                 52%
               </div>
           </li>
           <li>
               <span class="total-votes">No</span>
               <div class="results-bar right-bar" style="width:48%;">
                 48%
               </div>
           </li>
           <li>
       </ul>
       <p>Total votes: 100</p>
   </fieldset>
</div>

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-05 23:47:09

poll_results.php的输出中,您可以使用id“轮询区域”删除外部div。当将重复ID拖到当前页面时,您不需要重复的ID。

对于您的jQuery来说,这应该是很有用的:

代码语言:javascript
复制
success: function(result) {
    $j("#poll-area").html(result);

如我所知,当前在轮询区域div中存在的任何内容都将被ajax查询的结果覆盖。(投票选项应消失,结果将显示)

编辑(注释摘要):poll_vote.php应该输出poll_results.php中包含的HTML

票数 1
EN

Stack Overflow用户

发布于 2012-07-05 23:38:30

最简单但不是最干净的:使用innerhtml和getElementById()

你会得到这样的东西:

代码语言:javascript
复制
var div = getElementById('poll-area'); //The poll itself
div.innerHtml = getElementbyId('answers'); //The answers

请注意,我使用“答案”作为ID,因为您在答案和投票中使用了相同的ID。因此,您将得到一个嵌套的,它将无法工作。给你的第一个孩子答案()一个新的id,称为‘答案’。

如果您了解更多的javascript,请使用createElement添加一个新元素。这将提高速度和更好,但更先进一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11353938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档