Webmaster общности: Predpriemach.com | SearchEngines.bg

    Ajax анкета без mysql

    Безплатни AJAX уроци

    Автор: Hous

    Урокът е взет от w3schools – понеже видях ,че няма ajax анкети и реших да го споделя.

    това е файлът който съдържа HTML кодът на анкетата както и самия ajax код с помощта на който изпращаме инфото за това кой отговор сме избрали – като отговора се записва в текстов файл.
    index.html

    <html>
    <head>
    <script type="text/javascript">
    function getVote(int)
    {
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("poll").innerHTML=xmlhttp.responseText;
    }
    }
    xmlhttp.open("GET","poll_vote.php?vote="+int,true);
    xmlhttp.send();
    }
    </script>
    </head>
    <body>
    
    <div id="poll">
    <h3>Харесва ли ви анкетата?</h3>
    <form>
    Да:
    <input type="radio" name="vote" value="0" onclick="getVote(this.value)" />
    <br />Не:
    <input type="radio" name="vote" value="1" onclick="getVote(this.value)" />
    </form>
    </div>
    
    </body>
    </html>

    Функцията getVote() прави следното:
    Създава XMLHttpRequest обект
    Създава функция която да бъде изпълнена когато получим отговор от сървърът
    Изпраща запитването от файлът на сървъра
    Забележете ,че параметърът vote е добавен във URL адреса заедно със вотът да/не

    Сега и файлът който обработва вотът ви и го записва във текстовия файл:
    poll_vote.php

    <?php
    $vote = $_REQUEST['vote'];
    
    //get content of textfile
    $filename = "poll_result.txt";
    $content = file($filename);
    
    //put content in array
    $array = explode("||", $content[0]);
    $yes = $array[0];
    $no = $array[1];
    
    if ($vote == 0)
    {
    $yes = $yes + 1;
    }
    if ($vote == 1)
    {
    $no = $no + 1;
    }
    
    //vkarvame rezultattite vav txt fail po tozi nachin koito izglejdat taka 0 || 0
    $insertvote = $yes."||".$no;
    $fp = fopen($filename,"w");
    fputs($fp,$insertvote);
    fclose($fp);
    ?>
    
    <h2>Резултати:</h2>
    <table>
    <tr>
    <td>Да:</td>
    <td>
    <div style="background:green;width:<?php echo(100*round($yes/($no+$yes),2)); ?> ;heigh:20;"></div>
    <?php echo(100*round($yes/($no+$yes),2)); ?>%
    </td>
    </tr>
    <tr>
    <td>Не:</td>
    <td>
    <div style="background:green;width:<?php echo(100*round($no/($no+$yes),2)); ?>;height:20;"></div>
    <?php echo(100*round($no/($no+$yes),2)); ?>%
    </td>
    </tr>
    </table>

    Трябва ни и един файл poll_result.txt – където се записват резултатите , той трябва да се намира в директорията на файловете който създадохме до сега.

    Файлът poll_vote.php действа така:
    Приема стойността изпратена от javascript-ът в html файлът,след това взима съдържанието на файлът poll_result.txt след което прибравя избраният отговор при кликването да/не
    и става от примерно 0 || 0 става 1 | |0 при следващия вот (ако същият отговор е избран ) става 2 || 0

    Този урок е само за пример. Защо не трябва да се използва ?
    -Защото няма ограничение за това кой и кога/колко пъти може да дава вот в анкетата.Това разбира се може с малко php да се нагласи към вашия сайт.

    Урокът не е авторски и може да го копирате свободно.

    Архив с необходимите файлове