Yii Framework Forum: Złożony Formularz - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Złożony Formularz Rate Topic: -----

#1 User is offline   kradam 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 17
  • Joined: 22-October 12

Posted 14 February 2013 - 08:48 AM

Mam tabelę zamówień i klientów, każde zamówenie przypisane do jednego klienta.
Robię właśnie formularz dodający zamówienie. Życzeniem zamawiającego jest, aby na jednym ekranie oprócz innych parametrów zamówienia można było wpisać dane klienta.
Powinna być możliwość wyszukiwania już istniejącego klienta w bazie jeśli wpiszemy część jego parametrów na tym samym ekranie.

Szkic formularza zamówienia

Opis zamówienia: .....

-- Klient ---
Nazwa ....
Telefon .....
email .......
Uwagi .....

<Szukaj klienta>

Jeszcze o zamówieniu ...
<Zapisz zamówienie>

Przycisk <Szukaj klienta> ma przeszukać tabelę klientów pod kątem wybranych, wpisanych parametrów i jeśli znajdzie dokładnie jeden rekord, to wypełnić odpowiednimi wartościami część formularza dot. klienta. I to ma być AJAX, bez przeładowywania reszty formularza. <Zapisz zamówienie> ma zapisywać zamówienie oraz klienta.

Nie mam problemu z kilkoma modelami na formularzu ale utknąłem na AJAX-ie. Zastosować ajaxSubmitButton czy też ajaxButton? Jak odświeżać formularz po uzupełnieniu? renderPartial? Jesli tak, to jak przekazać $model i $form do obsługi AJAX-a w kontrolerze? Czy da się to w ogółe zrobić bez pisania kodu po stronie klienta? Strasznie długo to schodzi, błądzę i pomyślałem, że może ktoś ma gotowca (szkielet) i się podzieli? Problem wydaje się być typowy dla aplikacji biznesowych.

Pozdrawiam tych, którzy doczytali dotąd :-)
0

#2 User is offline   mirunho 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 170
  • Joined: 19-December 12
  • Location:Gdansk, Poland

Posted 18 February 2013 - 02:22 AM

View Postkradam, on 14 February 2013 - 08:48 AM, said:

Nie mam problemu z kilkoma modelami na formularzu ale utknąłem na AJAX-ie. Zastosować ajaxSubmitButton czy też ajaxButton? Jak odświeżać formularz po uzupełnieniu? renderPartial? Jesli tak, to jak przekazać $model i $form do obsługi AJAX-a w kontrolerze? Czy da się to w ogółe zrobić bez pisania kodu po stronie klienta? Strasznie długo to schodzi, błądzę i pomyślałem, że może ktoś ma gotowca (szkielet) i się podzieli? Problem wydaje się być typowy dla aplikacji biznesowych.

Pozdrawiam tych, którzy doczytali dotąd :-)

Wydaje mi sie ze na tym ajaxSubmitButton powinienes dodac na successie wypelnienie formularza wartosciami poprzez jqeury na przyklad, cos w stylu :
if(data.result==="success"){
   $("#input_id").val(zmienna);
}

0

#3 User is offline   kradam 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 17
  • Joined: 22-October 12

Posted 18 February 2013 - 06:33 AM

View Postmirunho, on 18 February 2013 - 02:22 AM, said:

Wydaje mi sie ze na tym ajaxSubmitButton powinienes dodac na successie wypelnienie formularza wartosciami poprzez jqeury na przyklad, cos w stylu :
if(data.result==="success"){
   $("#input_id").val(zmienna);
}



Tak obecnie robię, korzystam z ajaxSubmitButton, a po udanym wyszukiwaniu wypełniam pola klienta za pomocą JS, wcześniej atrybuty wyszukanego rekordu przesyłająć JSON'em. Ile mi to czasu zajęło, to lepiej nie pisać. Wolałbym to robić po stronie serwera, za pomocą renderPartial i klauzuli update w wywołaniu AJAX. Dlaczego? O tym później. Niestety nie wiem jak do widoku "partialnego" przekazać $form z kontrolera (akcji obsługującej AJAX). W widoku mam:
echo $this->renderPartial('..\customer\_insideform', array('model'=>$customerModel, 'form'=>$form));

Kompletnie nie wiem jak się dobrać do $form we wspomnianym kontrolerze. Any ideas?
0

#4 User is offline   mirunho 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 170
  • Joined: 19-December 12
  • Location:Gdansk, Poland

Posted 18 February 2013 - 09:26 AM

Pokaz akcje kontrolera bo chyba nie do końca rozumiem w czym problem?
Problem z tym że nie możesz zmiennej z kontrolera wrzucic do widoku, czy problem w tym ze to Ajax ?
0

#5 User is offline   kradam 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 17
  • Joined: 22-October 12

Posted 18 February 2013 - 09:53 AM

Zmienna $form inicjowana jest w standardowo w widoku, a następnie w tym samym pliku wywołuję renderPartial.

$form=$this->beginWidget('CActiveForm', array(
...
<div id="ajaxupdate">
echo $this->renderPartial('..\customer\_insideform', array('model'=>$customerModel, 'form'=>$form));
</div>

Jak widać przekazuję do _insideform $form w ostatnim parametrze. W _insideform mam "standardowo" :
echo $form->labelEx($model,'code'); 
echo $form->textField($model,'code',array('maxlength'=>8)); 
echo $form->error($model, 'code', null, disableAjaxValidation);


Wydzieliłem ten renderPartial, gdyż wyobrażałem sobie, że zwrócę ten fragment do #ajaxupdate z kontrolera.

W kontrolerze AJAX obsługuję przez:
public function actionCustomerSearch() {
  $modelCustomer = new Customer();
  $modelCustomer->attributes=$_POST['Customer'];
  $modelCustomer->code= "blabla";  // zmieńmy przykładowy atrybut
  $this->renderPartial('..\customer\_insideform',  array('model'=>$customerModel,  'form'=>$form));


Sposób jest opisany tu, ale bez użycia formularza:
http://www.yiiframew...-renderpartial/

Zonk jest taki, że nie wiem jak dostać się do $form w kontrolerze bo przecież go tam nie ma :-).
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users