• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Proszę o szybką pomoc php, ajax, codeigniter

Object Storage Arubacloud
0 głosów
329 wizyt
pytanie zadane 1 kwietnia 2017 w JavaScript przez Wonderpol Gaduła (3,730 p.)
edycja 1 kwietnia 2017 przez Wonderpol

Mam w folderze helpers stworzony plik helpers/response.php który wygląda tak : 

<?php
function response($message){
  if(isset($_GET['format']) && !empty($_GET['format'])){
    switch($_GET['format']){
        case 'json':
          print_r(json_encode($message));
          break;
        default:
          print_r($message);
          break;
    }
  } else {
    print_r($message);
  }
}

ma on robić tak ze jeżeli wpiszemy jakąś ścieżkę np. localhost/np/np/1?format=json to wyświetli bazę danych w js. zamiast w json wyświetla w html'u albo wgl co jest źle?

komentarz 1 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
if(isset($_GET['format']) && !empty($_GET['format'])){

do

if(!empty($_GET['format'])){

Na jedno wyjdzie. Bo jak nie jest pusty, to jest ustawiony. I nie, nie powoduje wyswietlenia notice/warninga.

   print_r($message);

do

   echo $message;

Bo print_r zjada więcej zasobów :P

Ja bym to napisał tak:

<?php
//php 7
function response($message){
    switch($_GET['format'] ?? null){
        case 'json':
          echo json_encode($message);
          break;
        default:
          echo $message;
          break;
    }
}

//php 5.6

function response($message){
    switch(isset($_GET['format']) ? $_GET['format'] : null){
        case 'json':
          echo json_encode($message);
          break;
        default:
          echo $message;
          break;
    }
}

 

komentarz 1 kwietnia 2017 przez Wonderpol Gaduła (3,730 p.)
Pomimo tego dalej wyświetla jak html a nie przetwaza na js

2 odpowiedzi

+1 głos
odpowiedź 2 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
wybrane 2 kwietnia 2017 przez Wonderpol
 
Najlepsza
Co dostajesz, jak wejdziesz w /get/1?format=json?

Odpal devtools przeglądarki (f12) z zaznaczoną zakładką networks, przeladuj, zaznacz na liscie /get/1?format=json i pokaz screenshota
komentarz 2 kwietnia 2017 przez Wonderpol Gaduła (3,730 p.)
Dodam ci wszystkie pliki jakie mam na gitcie ok?
komentarz 2 kwietnia 2017 przez Wonderpol Gaduła (3,730 p.)
https://github.com/Wonderpol/Eng2/ jak chcesz to moge dać jeszcze bazę MySQL
komentarz 2 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
nie bedzie potrzebna
komentarz 2 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
$this->input 

Nie działa ci, jak należy. Mozesz robić to za pomocą zmiennych środowiskowych ($_GET, $_POST), ale to nie jest zgodne ze sztuką i odradzam.

W ogóle zapomnij o używaniu print_r... zamień to na echo

Twoja funkcja (metoda) get "powinna" wyglądać:

    public function get($_id = null)
    {
        if (!$_id || !($zadania = $this->Components_model->get($_id))) {
            http_response_code(404);

            return;
        }

        if ($this->input->get('format') == 'json') {
            echo json_encode($zadania);
        } else {
            http_response_code(400);
            die('Not Supported Format');
        }
    }

 

Dodaj mój przykład i zamień $this->input->get('format') na ($_GET['format'] ?? ''), i sprawdź, czy ci zadziała.

W ogóle nie podoba mi się ten framework. Nie widzę nawet HttpNotFoundException, a robienie wszystkiego http_response_code mija się z celem. Jeśli dopiero co zaczałeś, możesz przenieść projekt na Yii2, Symfony. 

komentarz 2 kwietnia 2017 przez Wonderpol Gaduła (3,730 p.)
Dzięki ziomek zrobione i w json'ie działa ładnie już a framwork'a raczej nie będę zmieniał mimo że ma wad kilka
0 głosów
odpowiedź 1 kwietnia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Po prosimy kod JS.
komentarz 1 kwietnia 2017 przez Wonderpol Gaduła (3,730 p.)
edycja 1 kwietnia 2017 przez Wonderpol

          <script>
                    $(document).on('click' , '.info-button', function(){
                        var id = $(this).data('id');

                      $.ajax({
                        url: 'get/' + id + '?format=json',
                        type: 'json',
                        succes: function(respone){

                        }
                      });
                          });



                </script>
a błąd w konsoli 404
komentarz 1 kwietnia 2017 przez xandros Nałogowiec (29,450 p.)
Jak błąd 404, to sprawdź, czy istnieje taka strona :P

I pamiętaj że: 'get/' + id + '?format=json' to nie to samo, co '/get/' + id + '?format=json', po moze ci chodzilo o to 2.

Podobne pytania

0 głosów
0 odpowiedzi 192 wizyt
pytanie zadane 15 grudnia 2017 w PHP przez Mikołaj Mariasz Nowicjusz (120 p.)
–1 głos
0 odpowiedzi 795 wizyt
0 głosów
1 odpowiedź 137 wizyt

92,536 zapytań

141,377 odpowiedzi

319,452 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...