Example #1
0
function Main()
{
    $p = $_SESSION['perg'];
    $codalt = isset($_GET['a']) && !is_null($_GET['a']) ? base64_decode($_GET['a']) : null;
    if (is_numeric($codalt)) {
        //$codperg = $p->getCodigo();
        $pergunta = new Pergunta();
        $pergunta->setCodigo($p);
        $alt = new Alternativa();
        $alt->Carrega($codalt);
        if ($pergunta->DeletaAlternativa($alt)) {
            //$pergunta->RecarregarAlternativas();
            //$_SESSION['perg'] = serialize($p);
            header("Location:vwalternativas.php?p=" . base64_encode($p));
        } else {
            $erros = "Erros ocorreram.";
            foreach ($p->msg_erro as $err) {
                $erros .= "<br />" . $err;
            }
            echo $erros;
        }
    }
}
//require "./kint/Kint.class.php";
require ".././models/Alternativa.class.php";
require ".././models/Pergunta.class.php";
require ".././models/Conexao.class.php";
if (isset($_POST)) {
    // inserir pergunta
    $conexao = Conexao::getConexao();
    $stmt = $conexao->prepare("INSERT INTO perguntas (`pergunta`, `idCategoria`) VALUES (?,?)");
    $stmt->bindValue(1, $_POST["pergunta"]);
    $stmt->bindValue(2, $_POST["categoria"]);
    $stmt->execute();
    $idPergunta = $conexao->lastInsertId();
    // inserir alternativas
    $i = 1;
    while ($i <= 4) {
        $alternativa = new Alternativa();
        $alternativa->setAlternativa($_POST["alt" . $i]);
        $alternativa->setFk_Pergunta($idPergunta);
        $conexao = Conexao::getConexao();
        $stmt = $conexao->prepare("INSERT INTO alternativas (alternativa, fk_pergunta) VALUES (?,?)");
        $stmt->bindValue(1, $alternativa->getAlternativa());
        $stmt->bindValue(2, $alternativa->getFk_Pergunta());
        $stmt->execute();
        $i++;
    }
    // inserir alternativa correta
    $idAlternativaCorreta;
    $textoAlternativa;
    switch ($_POST['correta']) {
        // estrutura para saber qual alternativa foi marcada para gerar a query adequada
        case '1':
Example #3
0
function Main()
{
    if (isset($_SESSION['perg'])) {
        $p = new Pergunta();
        $p->Carregar($_SESSION['perg']);
        $a = new Alternativa();
        $acao = isset($_GET['act']) && !is_null($_GET['act']) ? $_GET['act'] : "";
        if ($acao == "novaordem") {
            if ($p->ReordenaAlternativa($_POST['ids'])) {
                echo "OK";
            } else {
                $erros = "@lng[Erros ocorreram.]";
                foreach ($p->msg_erro as $err) {
                    $erros .= "<br />" . $err;
                }
                echo $erros;
            }
        } else {
            // Nao recebe o codigo da pergunta pois este ja esta informado na session 'perg'
            // O recebimento da sequencia eh só pra decidir se insere ou atualiza a alternativa
            if ($p->getTipo()->getCodigo() == 1) {
                $seq = isset($_POST['hidSeq']) && $_POST['hidSeq'] != "" ? $_POST['hidSeq'] : null;
                $txt = urldecode($_POST['txtTextoAdicional']);
                $car = $_POST['selCorreta'];
                $m_explicacao = isset($_POST['chkMostra']) ? $_POST['chkMostra'] : 0;
                $explicacao = $_POST['txtExplicacao'];
                $origem = isset($_POST['hdnOrigem']) && $_POST['hdnOrigem'] != "" ? $_POST['hdnOrigem'] : "";
                $acao = $_POST['selConsequencia'];
                $qual_acao = $_POST['selValorConsequencia'];
            } else {
                $seq = isset($_POST['hidSeq']) && $_POST['hidSeq'] != "" ? $_POST['hidSeq'] : null;
                $txt = urldecode($_POST['txtAlternativa']);
                $car = $_POST['selCorretoTxt'];
                $explicacao = $_POST['txtJustTxt'];
                $origem = isset($_POST['hdnOrigem']) && $_POST['hdnOrigem'] != "" ? $_POST['hdnOrigem'] : "";
            }
            if ($acao == 1) {
                $qual_acao = 0;
            }
            if (!is_integer($qual_acao)) {
                if (!is_null($qual_acao)) {
                    $qual_acao = base64_decode($qual_acao);
                }
            }
            if (!is_null($seq)) {
                $a->setSequencia($seq);
            }
            $a->setTexto($txt);
            $a->setCorreto($car);
            $a->setExplicacao($explicacao);
            $a->setExibirExplicacao($m_explicacao);
            $a->setTipoConsequencia($acao);
            $a->setValorConsequencia($qual_acao);
            $a->setOrigem($origem);
            if (is_null($seq)) {
                if ($p->AdicionaAlternativa($a) === true) {
                    $_SESSION['perg'] = $p->getCodigo();
                    header("Location:vwalternativas.php?p=" . base64_encode($p->getCodigo()));
                } else {
                    $erros = "@lng[Erros ocorreram.]";
                    foreach ($p->msg_erro as $erro) {
                        $erros .= "<br />" . $erro;
                    }
                    header("Location:vwalternativas.php?p=" . base64_encode($p->getCodigo()) . "&m=" . base64_encode($erros));
                }
            } else {
                if ($p->AtualizaAlternativa($a) === true) {
                    $_SESSION['perg'] = $p->getCodigo();
                    header("Location:vwalternativas.php?p=" . base64_encode($p->getCodigo()));
                } else {
                    $erros = "@lng[Erros ocorreram.]";
                    foreach ($p->msg_erro as $err) {
                        $erros .= "<br />" . $err;
                    }
                    header("Location:vwalternativas.php?p=" . base64_encode($p->getCodigo()) . "&m=" . base64_encode($erros));
                }
            }
        }
    } else {
        echo "@lng[Pergunta não definida]";
    }
}
Example #4
0
 public function BuscaAlternativasFiltradas($filtro)
 {
     Log::RegistraLog("Pesquisa alternativas da pergunta " . $this->codigo . " filtradas por: " . $filtro);
     $sql = "select CASE WHEN Sequencia IS NULL THEN 0 ELSE Sequencia END Sequencia, ";
     $sql .= "Texto, Imagem, Correto, Explicacao, ExibirExplicacao, TipoConsequencia, ValorConsequencia, CodUnico, CodBinario ";
     $sql .= "from mesalternativa ";
     $sql .= "where CodPergunta = :pCodPerg ";
     $sql .= "  and ((CodBinario & :pFiltro) > 0) ";
     $sql .= "order by Sequencia;";
     $cnn = Conexao2::getInstance();
     $q = $cnn->prepare($sql);
     $q->bindParam(":pCodPerg", $this->codigo, PDO::PARAM_INT);
     $q->bindParam(":pFiltro", $filtro, PDO::PARAM_INT);
     $q->execute();
     $arrAlternativas = array();
     if ($q->rowCount() > 0) {
         while ($rs = $q->fetch(PDO::FETCH_OBJ)) {
             $a = new Alternativa();
             $a->setSequencia($rs->Sequencia);
             $a->setCodUnico($rs->CodUnico);
             $a->setTexto($rs->Texto);
             $a->setImagem($rs->Imagem);
             $a->setCorreto($rs->Correto);
             $a->setExplicacao($rs->Explicacao);
             $a->setExibirExplicacao($rs->ExibirExplicacao);
             $a->setTipoConsequencia($rs->CodConsequencia);
             $a->setValorConsequencia($rs->ValorConsequencia);
             $a->setCodBinario($rs->CodBinario);
             $arrAlternativas[] = $a;
         }
     }
     return $arrAlternativas;
 }