Friday, April 22, 2011

Re: return Json values cakephp 1.3.8

There is one way I solved this. It is not the most elegant solution
but does the job. I generated my value in my view like this .

<script language="javascript" type="text/javascript">
var niz = [];
temp = [];
<?php
$brojac=0;
foreach($profs as $prof) {
?>

temp=[];
temp[0]='<?php echo $prof['predmets']['naziv'];?>';
temp[1]='<?php echo $prof['nast_osobljes']['ime'];?>';

niz[<?php echo $brojac;?>]= temp ;

<?php $brojac=$brojac+1; } ?>
</script>

Variables are in Serbian but you can guess what they are.

Again, not pretty but works stable and does the job...

Hope it helps a little bit

On Apr 22, 8:49 am, Walther <waltherl...@gmail.com> wrote:
> What you want is:https://github.com/josegonzalez/webservice_plugin
>
> That plugin handles everything for you. All you need to do is
> configure cake to parse the json extension and call your url with that
> extension (example.com/controller/action.json)
>
> On Apr 22, 8:17 am, pedro sastre <pdrsas...@gmail.com> wrote:
>
>
>
>
>
>
>
> > I have included the json_encode echo ($ provinces) and the action
> > continues without
> > returning kos edit json values​​. Add action in l if I return the values​​.
>
> > my controller
>
> > <?php
>
> > class CitiesController extends AppController {
>
> >     var $name = 'Cities';
> >     var $components = array('RequestHandler');
>
> >     public function obtener_provincias() {
> >         if (!empty($this->data['City']['province_id'])){
> >               $this->data = "";
> >                  if ($this->RequestHandler->isAjax()) {
> >                 $this->set('provinces', $this->City->Province->find('list',
> >                                 array('conditions' =>
> >                                      array('province.country_id' =>
> > $this->params['url']['countryId']),
> >                                     'recursive' => -1)));
> >     echo json_encode($provinces);
> >             }
> >         }
> >                 else{
> >             if ($this->RequestHandler->isAjax()) {
> >                 $this->set('provinces', $this->City->Province->find('list',
> >                                 array('conditions' =>
> >                                      array('province.country_id' =>
> > $this->params['url']['countryId']),
> >                                     'recursive' => -1)));
> >                                     echo json_encode($provinces);
> >             }
>
> >             }
>
> >     }
>
> >     function index() {
> >         $this->City->recursive = 0;
> >         $this->set('cities', $this->paginate());
> >     }
>
> >     function view($id = null) {
> >         if (!$id) {
> >             $this->Session->setFlash(__('Invalid city', true));
> >             $this->redirect(array('action' => 'index'));
> >         }
> >         $this->set('city', $this->City->read(null, $id));
> >     }
>
> >     function add() {
> >         if (!empty($this->data)) {
> >           //  pr($this->data);
> >             exit();
>
> >             $this->City->create();
> >             if ($this->City->save($this->data)) {
> >                 $this->flashSuccess(__('The city has been saved', 'index'));
> >                 /* $this->Session->setFlash(__('The city has been saved',
> > true));
> >                   $this->redirect(array('action' => 'index'));
> >                  */
> >             } else {
> >                 $this->Session->setFlash(__('The city could not be saved.
> > Please, try again.', true));
> >             }
> >         }
> >         $countries = $this->City->Country->find('list');
> >         $provinces = $this->City->Province->find('list');
> >         $this->set(compact('countries', 'provinces'));
> >     }
>
> >     function edit($id = null) {
> >         if (!$id && empty($this->data)) {
> >             $this->Session->setFlash(__('Invalid city', true));
> >             $this->redirect(array('action' => 'index'));
> >         }
> >         if (!empty($this->data)) {
> >             pr($this->data);
> >             exit();
> >             if ($this->City->save($this->data)) {
> >                 //$this->flashSuccess('la ciudad The city has been
> > saved','index');
> >                 $this->Session->setFlash(__('The city has been saved',
> > true));
> >                 $this->redirect(array('action' => 'index'));
> >             } else {
> >                 $this->Session->setFlash(__('The city could not be saved.
> > Please, try again.', true));
> >             }
> >         }
> >         if (empty($this->data)) {
> >             $this->data = $this->City->read(null, $id);
> >         }
> >         $countries = $this->City->Country->find('list');
> >         $provinces = $this->City->Province->find('list', array('conditions'
> > =>
> >                     array('province.country_id' =>
> > ($this->data['Country']['id']))));
> >         $this->set(compact('countries', 'provinces'));
>
> >     }//webroot/js/list_provinces.js
> > $(document).ready(function(){
> >     $('#country').live('change', function() {
> >            if($(this).val().length != 0) {
> >             $.getJSON('obtener_provincias',
> >             {
> >                 countryId: $(this).val()
> >                 },
> >             function(provinces) {
> >                 if(provinces !== null) {
> >                     populateProvinceList(provinces);
>
> >                 }
>
> >             });
> >         }
> >     });
> >       $('#province').live('change', function() {
> >            if($(this).val().length != 0) {
> >             $.getJSON('obtener_ciudades',
> >             {
> >                 provinceId: $(this).val()
> >             },
> >             function(cities) {
> >                     if(cities !== null) {
> >                     populateCityList(cities);
>
> >                 }
>
> >             });
> >         }
> >     });
>
> > });
>
> > function populateProvinceList(provinces) {
> >     var options = '';
> >     $.each(provinces, function(index, province) {
> >         options += '<option value="' + index + '">' + province +
> > '</option>';
> >     });
> >     $('#province').html(options);
> >     $('#provinces').show();
>
> > }
>
> > function populateCityList(cities) {
> >     var options = '';
> >     $.each(cities, function(index, city) {
> >         options += '<option value="' + index + '">' + city + '</option>';
> >     });
> >     $('#city').html(options);
> >     $('#cities').show();
>
> > }
>
> > my script

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: