» »

Anketa v PHP-ju

Anketa v PHP-ju

RO87 ::

Prosim za hitro pomoc pri programu da bo delal sam sem si pomagal preko zapiskov vendar je ocitno stvar bolj delikatna kot sem si predstavljal. Moral sem narediti anketo v PHP-ju, ki ima pac radio buttons in potem ko izberemo enega od nastetih odgovorov se nam na ekran prikaze stevilo odgovor in pa procenti. Koda pa je naslednja:


Koda:
<?php

session_start(); //zacetek seje za shranjevanje podatkov
if (isset($_POST['Potrdi'])) { //preveri ce je potrjeno
  
  
    for ($i = 1; $i<=4; $i++) { //preveri,ce je izbran kateri od odgovorov
        if (isset($_POST['odgovor'.$i])) {
            $_SESSION['tabela'][$i]++;
        }
    }
}

$tabela[1] = "Na Slovenski obali."; //definiranje odgovorov
$tabela[2] = "Na Hrvaškem.";
$tabela[3] = "V tujini.";
$tabela[4] = "Nismo bili na morju.";

if (!isset($_SESSION['tabela'])) {
    $_SESSION['tabela'] = array();
  
    $_SESSION['tabela'][1] = 0;  //nastavi zacetne vrednosti na 0
    $_SESSION['tabela'][2] = 0; 
    $_SESSION['tabela'][3] = 0;
    $_SESSION['tabela'][4] = 0;
}

echo "Kje ste bili letos na morju?</br></br>"; //vprašanje ankete
echo '<form name="anketa" action="anketa_DELA.php" method="post">'; //izpis odgovorov
foreach ($tabela as $moznost => $vrednost) {
    echo '<input name="odgovor" type="radio" value="'.$moznost.'" /> '.$vrednost.'</br>';
}
echo '</br>';
echo '<input type="submit" value="Potrdi" name="Potrdi">';
echo '</form>';

$stOdg=0;

if (isset($_SESSION['tabela'])) { //izpis odgovora in število odgovorov in odstotek
    for ($i = 1; $i<=4; $i++) {
        echo $tabela[$i].' &nbsp; '; //izpis odgovora
        echo $_SESSION['tabela'][$i].' glasov </br>';
      $stOdg=$stOdg+$_SESSION['tabela'][$i];
    }
   echo "<br><br>";
   for ($i = 1; $i<=4; $i++) {
        echo $tabela[$i].' &nbsp; '; //izpis odgovora
        if ($stOdg==0){
      echo "Procenti: 0 %<br>";}
   else {   
           echo "Procenti: ".round(($_SESSION['tabela'][$i]/$stOdg)*100) ."%<br>";}
      
    }
}

?> 


seminarska ne dela, ker imajo v spletnem obrazcu vse radio izbire name=«odgovor«, v kodi zgoraj pa se gleda »if (isset($_POST['odgovor'.$i]))«, torej kot da bi bila imena npr. »odgovor1«, »odgovor2« itn. Poleg tega se elementi tipa »radio«, ki imajo isto ime, ne pregledujejo z zanko, ker obstaja samo ena $_POST spremenljivka z njihovim imenom. To je bil odgovor da je napaka.Drugace pa so bila navodila tako, kaj smemo uporabljati in kaj ne.

Ce pa kdo ima mogoce kodo od kakrsne koli anketo napisano v PHP-ju pa bi bil zelo hvalezen ce bi jo pripel oz napisal.
Upam da stvar nisem prevec zakompliciral, ce je kdo ki bi znal popraviti program da bi delal kar pac more, bi mu bil zelo hvalezen za pomoc, saj sam res ne vem vec kaj bi storil, saj se nimam dovolj prakse, stvar pa moram narediti.Zato hvala za pomoc se enkrat.

PaX_MaN ::

Prav ti je bilo povedano.
Tole je narobe:

if (isset($_POST['odgovor'.$i])) {
$_SESSION['tabela'][$i]++;
}

Spremeni v:
if (isset($_POST['odgovor'])) {
$_SESSION['tabela'][$_POST['odgovor']]++;
}

Pa še zbriši zanko okoli tega if stavka.

Zgodovina sprememb…

  • spremenilo: PaX_MaN ()

RO87 ::

Ce prav razumem je potrebno odstraniti if stavek in dobimo:

(isset($_POST['odgovor'])) {
$_SESSION['tabela'][$_POST['odgovor']]++;
}

Hvala za odgovore in pomoc!

Zgodovina sprememb…

  • spremenil: RO87 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Pomoč z jQuery (osnove)

Oddelek: Programiranje
8818 (690) alexa-lol
»

if(empty($_POST["vsa-polja"]))?

Oddelek: Izdelava spletišč
212621 (2236) Housy
»

[PHP] posiljanje podatkov (osnove)

Oddelek: Izdelava spletišč
161172 (887) urosz
»

problem z phpjem

Oddelek: Izdelava spletišč
304275 (3688) snow
»

sessions

Oddelek: Izdelava spletišč
151497 (1359) multiplayer

Več podobnih tem