1

Temat: przesłanie zmiennej do nowego formularza, jak?

Witam,
mam bazę zamówienia: id, client_id, user_id, opis ... Chciałbym dodać nowe zamówienie, ale tak, by user_id był pobierany z Session->User(id), a client_id jako parametr z adresu: zamowienia/add/5 . Niestety nie wiem jak to zrobić, tzn, jak przesłać parametry client_id i user_id do kontrolera, a stamtąd do widoku add()

2

Odp: przesłanie zmiennej do nowego formularza, jak?

hmm musisz sie mocnej zaglebic w dokumentacje -> polecam http://book.cakephp.org/view/27/Developing-with-CakePHP jako nowego przyjaciela tongue

W kontrolerze zamowienia dajesz funkcje

function add($id = false) {
     if($id) {
           dodaj zamowienie o id 5 z adresu add/5
    }
}

3

Odp: przesłanie zmiennej do nowego formularza, jak?

Chodziło mi o przekazanie parametrów user_id i client_id do zamówienia, a nie id zamówienia. Chciałbym przekazać np.: zamowienia/add/user_id:5/client_id:3 albo zamowienia/add/5/3
czyli w kontrolerze:

function add($user_id = null, $client_id = null){

               
              i co tutaj??
}

i nie wiem jak to obsłużyć w widoku sad

4

Odp: przesłanie zmiennej do nowego formularza, jak?

hmmm niebardzo wiem oco biega w takim razie. Mowiles ze client ID ma byc pobierane z sesji wiec $user_id = $this->Session->read('id'); a client id pobierasz jako argument z adresu wiec to co napisalem jest poprawne

function add($client_id = null){

               // jak w adresie miales add/5 to client_id juz wynosi 5, jest juz przekazane jako argument funkcji

              echo $client_id; // napisze sie 5
              $user_id = $this->Session->read('id');

// i juz jest wszystko

}

jak jeszcze nie to to dookladniej poprosze ;]

5

Odp: przesłanie zmiennej do nowego formularza, jak?

OK, o to chodziło tylko jak to obsłużyć w widoku mam:

<?php e($form->create('Zamowienie', array('action'=>'add')));?>
<fieldset>
      <legend>Dodaj zamowienie</legend>

      <?php e($form->input('description', array('label' =>'Opis','class' => 'fullwidth'))); ?>
      <?php $date=date("Y-m-d"); e($form->input('date', array('type'=>'hidden', 'value'=> $date)));    ?>
      <?php e($form->input('client_id', array('type'=>'hidden', 'value' => $client_id )));   
       ?>
      <?php  e($form->input('user_id', array('type'=>'hidden', 'value' => $user_id))); 
        ?>
      <?php e($form->submit('Dodaj zamówienie', array('div' => false,'class' => 'submitbutton'))); ?>

</fieldset>
<?php e($form->end()); ?>

co daje: Undefined variable: client_id  oraz Undefined variable: user_id

6

Odp: przesłanie zmiennej do nowego formularza, jak?

1. Nie

<?php e($form->create('Zamowienie', array('action'=>'add')));?>

a

<?php e($form->create('Zamowienie', array('url'=>'add')));?>

2. Zeby "ustawic" zmienna w widoku , w akcji kontrolera :

$this->set("clinet_id","jakas_wartosc");

Ostatnio edytowany przez robal77 (2009-05-06 22:23:36)

7

Odp: przesłanie zmiennej do nowego formularza, jak?

Dziękuję, oto chodziło smile