Jump to content
Sign in to follow this  
noebezerra

Problema com AJAX - PHP - Slim Framework

Recommended Posts

Olá este é meu primeito tópico, então me desculpe se estiver no lugar incorreto.

O projeto se trata de um sistema de enquete, com votação em 'estrelinhas'

Tenho um problema no meu Ajax. Estou usando o Slim framework com Eloquent (sou iniciante)

Projeto no github: https://github.com/noebezerra/survey-slim

 

Eu tenho uma ajax

$('.stars-default').click(function(e) {
    e.preventDefault();
    $.ajax({
        url: '../app/Controllers/Poll.php',
        type: 'GET',
        dataType: 'html',
        data: {valor: pointStar, qtdperguntas: qtdperguntas},
    })
    .done(function(data) {
        console.log(data);
    })
    .fail(function() {
        console.log("error");
    })
});

Ele me retorna um Array (pointStar) que é a quantidade de estrelas selecionadas para cada pergunta e a quantidade de perguntas que possui na enquete.

 

Poll.php

<?php
    namespace App\Controllers;
    
     use App\Models\PollAnswers;

     session_start();
     /**
     *
     */
     class Poll extends Controller {

         public function poll() {

            $qtdperguntas = $_GET['qtdperguntas'];
            $result = '[';
            for ($i=0; $i < $qtdperguntas; $i++) {
                if ($i < $qtdperguntas - 1) {
                    $result .= '"'.$_GET['valor'][$i].'",';
                } else {
                    $result .= '"'.$_GET['valor'][$i].'"';
                }
            }
            $result .= ']';

            $userpoll = PollAnswers::where('id_user', '=', $_SESSION['user']);
            if (!$userpoll) {
                PollAnswers::create([
                    'id_user' => $_SESSION['user'],
                    'answers' => $result
                ]);
                echo "insert";
            } else {
                $userpoll->answers = $result;
                echo "update";
            }

         }
     }
?>

Controller.php

<?php
    namespace App\Controllers;

    /**
    *
    */
    class Controller {
        
        protected $container;

        public function __construct($container) {
            $this->container = $container;
        }

        public function __get($property) {
            if ($this->container->{$property}) {
                return $this->container->{$property};
            }
        }
    }
?>

PollAnswers.php

<?php

    namespace App\Models;
    
    use Illuminate\Database\Eloquent\Model;

    /**
    *
    */
    class PollAnswers extends Model {
        
        protected $table = 'poll_answers';

        protected $fillable = array('id_user', 'id_poll_question', 'answers');

    }
?>

Quando o ajax chega lá na pagina dá o seguinte erro:

Fatal error: Class 'Controller' not found in /var/www/html/survey-slim/app/Controllers/Poll.php on line 14, referer: http://localhost/survey-slim/public/

 

Parece que ele não reconhece minha classe. Alguém possui uma sugestão? Como o projeto está no github sinta-se avontade para contribuir =)

 

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Salvatore
      Então, eu estou gravando uns dados no bancos de dados usando text area, mas quando eu dou espaço ou algo do tipo fica assim
       
      Ex :aaaa\r\naaaaaa\r\n
       
      onde esses \r\n são espaços e outras coisas, e ficam sendo exibidos quando eles retorna para a pagina
      alguém sabe como resolvo isso?
    • By violin101
      Caros amigos, saudações...
       
      Estou usando Codeigniter e estou com uma pequena dúvida.
       
      Tenho um Form com os seguintes campos:
      Data Início..... <input type="date" /> Hora Início.... <input type="time" /> Data Final..... <input type="date" /> Hora Final.... <input type="time" /> até aqui tudo bem
       
      Gostaria de fazer uma VERIFICAÇÃO para impedir que o usuário GRAVE no MySql uma data menor que a data atual.
      ou seja:
      Data Início nunca poderá ser menor que a Data Atual.
      e a
      Data Final só poder ser igual ou maior que a Data Início.
       
      Grato,
       
      Cesar
       
    • By Salvatore
      Galerinha Boa, alguém pode me explicar como eu faço pra editar isso abaixo usando php
       
       
       <div class="nome-vip">
              <p class="text-center"><span>1</span> CASH</p>             <---------------essa parte eu queria saber como eu edito clicando por cima(tentei usando contenteditable), mas n deu do jeito que eu queria,preciso que o valor editado fique em uma variavel PHP
            </div>
            <p class="text-center" style="color: #888; font-size: 15px;">por apenas</p>
            <div class="preco-vip">
              <p class="text-center">R$ 1</p> <------------------- e aqui iria ter a variável preço que ja estaria definida como um, e quando la em cima fosse adicionado um valor int, somasse os 2 e gerasse a variavel valor e exibindo ela
            </div>
       
      Alguém ajuda eu, to caçando em mts sites algo assim mas n consigo
       
    • By drx
      Olá pessoal!
      Estou com um probleminha aqui. Estou me embrenhando pelos ajax e jquery. Muito interessante. 
      Eu peguei um exemplo e é bem simples. Só que não retorna a mensagem para a div.
       
      Eu tenho uma div em pagina1.php onde o usuário entra com um número identificador em um campo textfield.
      Após entrar com o número identificador, solicito a verificação em uma outra página.php onde tenho uma consulta no mysql.
      O echo da consulta é: Existente ou Inexistente. A consulta é feita pelo número identificador. Fiz a verificação e retorna perfeitamente,
      Porém eu quero que ao verificar, a mensagem retorne para minha outra div logo abaixo na pagina1.php
      Vou passar o código para facilitar....
       
      <html>
      <head>
       
      <script src="js/jquery.js"></script>
      <script>
      $(function(){
        $('#form').submit(function(){
           $.ajax({
             url: 'x_consultar_patro.php',
             type: 'POST',
             data: $('#form').serialize(),
             success:function ( data ) {
                 if (data != '') {
                     $('#frm_cadastro').html( data );
                 }
               }
             });
           return false;
         });
      });
      </script>
       
      </head>
       
      <body>

      <div id="frm_cadastro"></div>

      <form id="form" method="post" action="">
        <input type="text" name="codpatro" id="codpatro"/>
        <input type="submit" name="btn_procurar" id="btn_procurar" value="Procurar"/>
      </form>
       
      </body>
      <html>
       
       

    • By Claudia França
      prezados como eu altero de loked para unloked do arro para não carregar o java e seguir com o procedimento. 
       
       
      ?Veja nesse link https://drive.google.com/drive/u/0/folders/1h0EbUoz3UOL8j9orWirUAPILt7cg7q-p 
      minhas imagens não estao subindindo aqui, não sei porque, acho que tenho limitação. 
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.