Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[problem] YiiFramework zdublowane ID w widgetach
#3
Dobra to tak na szybko

Widok Login:

Kod:
<?php
    $form=$this->beginWidget('CActiveForm', array(
    'id'=>'login_form_widget',
    'enableClientValidation'=>true,
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
    ),
)); ?>

    <div class="row">
        <?php echo $form->label($model,'login'); ?>
        <?php echo $form->textField($model,'login'); ?>
        <?php echo $form->error($model,'login'); ?>
    </div>

    <div class="row">
        <?php echo $form->label($model,'password2'); ?>
        <?php echo $form->passwordField($model,'password2'); ?>
        <?php echo $form->error($model,'password2'); ?>
    </div>
    
    <div class="row rememberMe">
        <?php echo $form->checkBox($model,'rememberMe'); ?>
        <?php echo $form->label($model,'rememberMe'); ?>
        <?php echo $form->error($model,'rememberMe'); ?>
    </div>
    <div class="clear"></div>

    <div class="row buttons">
        <?php echo CHtml::submitButton('Zaloguj',array('id'=>'lightbox_login_submit')); ?>
    </div>

<?php $this->endWidget(); ?>

Widok register
Kod:
<?php $form=$this->beginWidget('CActiveForm', array(
        'id'=>'rejestracja-form',
        'enableClientValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
        ),
    )); ?>
        
        <div class="row">
    <?php echo $form->labelEx($model,'login'); ?>
    <?php echo $form->textField($model,'login'); ?>
    <?php echo $form->error($model,'login'); ?>
        </div>
        
        <div class="row">
    <?php echo $form->labelEx($model,'password2'); ?>
    <?php echo $form->passwordField($model,'password2'); ?>
    <?php echo $form->error($model,'password2'); ?>
        </div>
        
        <div class="row">
    <?php echo $form->labelEx($model,'password'); ?>
    <?php echo $form->passwordField($model,'password'); ?>
    <?php echo $form->error($model,'password'); ?>
        </div>
        
      <div class="row">
    <?php echo $form->labelEx($model,'email'); ?>
    <?php echo $form->textField($model,'email'); ?>
    <span class="adnotation">E-maile nie będą ujawniane osobom trzecim</span>
    <?php echo $form->error($model,'email'); ?>
        </div>
    
        <div class="accept_terms row">
    <?php echo $form->checkBox($model,'accept'); ?>
    <?php echo $form->labelEx($model,'accept'); ?>
    <?php echo $form->error($model,'accept'); ?>
        </div>
        <div class="clear"></div>
        <div id="register" class="row buttons">
    <?php echo CHtml::submitButton('Zarejestruj',array('submit' => '/rejestracja',"id"=>"lightbox_register_submit")); ?>
        </div>
    </div>
    <?php $this->endWidget(); ?>

Layout:

Kod:
<?php
$this->renderPartial('site/login',array('model'=>$model));
?>
<?php
$this->renderPartial('site/register',array('model'=>$model));
?>

W ten sposób ID dla login i haslo są zdublowane (występują zarówno w logowaniu i rejestracji, które jednocześnie są na stronie) i powoduje błędy w JS - nie wspominam już o walidacji. Tutaj masz screen z konsoli:

http://screenshooter.net/8216679/awqscet

EDIT:

Nie chcę przerabiać żadnej z tych akcji ani nawet modelu. Jakie jest najmniej inwazyjne rozwiązanie by id w tych widgetach się różniło i poszczególne akcje mogły spokojnie walidować formularz za pomocą metod $model->attributes($_POST) i $model->validate();

W ostatniej chwili dostałem info, by logowanie i rejestracja było w formie lightboxach bez AJAXa (bo tak brzydko się ładuje a powinno być od razu) i komplikuje mi to sprawę
Jak pomogłem daj '+'. To nie boli, a ja mam satysfakcję Smile

Any sufficiently advanced technology is indistinguishable from magic.
Odpowiedz


Wiadomości w tym wątku
RE: [problem] YiiFramework zdublowane ID w widgetach - przez R_Rafalsky - 16-03-2012, 00:21

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl