php
  • ajax
  • 2016-02-12 194 views 3 likes 
    3

    美好的一天。Php Ajax foreach循環故障

    我正在使用ajax顯示投票的投票。 舉例來說,我有3項民意調查:民意測驗1,民意測驗2,民意調查3. 您必須點擊民意測驗1的鏈接才能顯示民意調查1的結果,其中的頁面不會因爲ajax而重新加載。 結果以百分比顯示。

    以下是摘錄。

    $poll_response = query($con, "SELECT *FROM `responses` WHERE `id` = '{$poll_id}'"); 
    $count_response = rows($poll_response); 
    
    if($count_response > 0) 
    { 
        $responses_array = array(); 
    
        for($j=1;$j<=$count_response;$j++) 
        { 
         $fetch = fetch($poll_response); 
         $response = $fetch['response']; 
         $responses_array[] = $response; 
        } 
    
        $responses_values = array_count_values($responses_array); 
        $min_value = min($responses_values); 
    
    
        foreach($responses_values as $value=>$count_value) 
        { 
        ?> 
         <div id='votes'> </div> 
    
         <script type="text/javascript">           
         var percent_num,width,min_val; 
         var each_count = "<?php echo $count_value;?>"; 
         var total = "<?php echo $count_response;?>"; 
         var response = "<?php echo ucfirst($value);?>"; 
         var min_val = "<?php echo $min_value;?>"; 
    
         if(each_count > 0) 
         { 
          percent_num = ((each_count *100)/total); 
          percent_num = Math.round(percent_num); 
          width = percent_num*2; 
         } 
         else 
        { 
         width = 1; 
         percent_num = 0; 
        } 
    
    if(total > 0) 
    { 
        var votes = $("#votes"); 
        votes.html("<table width='50%'><tr><td width='25%'>"+response+"</td><td> &nbsp; &nbsp;<img src='../images/poll_green.jpg' width="+width+" height=20 border=10/> &nbsp;"+percent_num+"% </td><td><span class='badge'>"+each_count+"</span></td><br/></tr></table>"); 
    
    } 
    else 
    { 
        document.write("<div class='alert alert-danger'>No result yet</div>"); 
    } 
    
    </script> 
        <?php 
        } 
        ?> 
    

    上面的代碼的問題是它只在數據庫中顯示一條記錄。 舉個例子,如果你點擊了民意調查1和民意調查1的鏈接如此:

    你最喜歡哪個電腦品牌? A)。 B)戴爾 C)宏基。 D)三星

    和10人已經投了惠普,4戴爾,7爲宏碁和15爲三星。

    它應該顯示每個計算機品牌的投票數和百分比的標題,這意味着將顯示4條記錄,但相反,它只顯示戴爾的投票數和百分比,如果阿賈克斯但如果只使用PHP,它會顯示所有計算機品牌的投票數和百分比正常

    請問,這可能是什麼原因以及可能的解決方案?

    感謝

    +0

    如果你的foreach循環運行,更多的則onces,它將覆蓋以前的結果。我仍然不明白你遇到的主要問題是什麼。 – Ibu

    回答

    0

    我想你是不是添加值,你的反應陣列這裏

    $responses_array[] = $response; 
    

    我會嘗試增加索引。

    for($j=1;$j<=$count_response;$j++) 
        { 
         $fetch = fetch($poll_response); 
         $response = $fetch['response']; 
         $responses_array[j] = $response; 
        } 
    
    0

    試試這個

    $responses_array[j] = $fetch['response']; 
    

    ,而不是它

    $response = $fetch['response']; 
    $responses_array[] = $response; 
    
    +0

    它沒有工作。 – dlastofmykind

    相關問題