2011-12-31 2 views
0

J'ai besoin de votre aide .. je crée une application web sur l'entrée de livres en utilisant yii. dans un formulaire je dois déposer un numéro isbn d'une table qui devrait récupérer le titre du livre relavive qui est dans la même rangée dans un autre champ de texte ou une liste déroulante .... J'espère que vous comprenez mon problème s'il vous plaît donner suggestion.ici mon codage pour une vue html PageJe dois créer la liste déroulante dépendante pour les mêmes colonnes dans la même rangée

<div class="row"> 
    <?php echo $form->labelEx($model,'isbn_no'); ?> 
    <?php echo $form->dropDownList($model,'isbn_no',CHtml::listData(Books::model()->findAll(array('order'=> 'isbn_no ASC')),       'isbn_no', 'isbn_no'),array('empty'=>'Select'),array(
        'ajax' => array(
        'type' => 'POST', 
        'url' => CController::createUrl('Processcontroller/Book'), 
        'update' => "#book_title" 
       )));?> 
    <?php echo $form->error($model,'isbn_no'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'book_title'); ?> 
<?php echo $form->dropDownList($model,'book_title','',array(),array('empty'=>'select')); 

    <?php echo $form->error($model,'book_title'); ?> 
</div> 

mon contrôleur nommé ProcessController.php

public function actionBook() 
{ 
//please enter current controller name because yii send multi dim array 
    $data=Books::model()->findAll('book_id=:book_id', 
        array(':book_id'=> $_POST['current-Controller']['book_id'])); 

    $data=CHtml::listData($data,'isbn_no','book_title'); 
    foreach($data as $value=>$name) 
    { 
     echo CHtml::tag('option', 
        array('value'=>$value),CHtml::encode($name),true); 
    } 
} 

.... ma table sera comme ci-dessous nommés Livres book_id (PK) | isbn_no | book_title |

Répondre

1

Le seul problème que je peux voir dans votre code est que

dans votre contrôleur

$data=Books::model()->findAll('book_id=:book_id', 
       array(':book_id'=> $_POST['current-Controller']['book_id'])); 

alors que vous devriez comparer isbn_no que vous envoyez isbn_no de la forme au contrôleur ...

$data=Books::model()->findAll('isbn_no=:isbn_no', 
       array(':isbn_no'=> $_POST['current-Controller']['isbn_no'])); 

Si une autre erreur est affichée alors s'il vous plaît mentionner .. comme le code semble bien ... et vous n'avez pas mentionné quelle est l'erreur ..

+0

Salut, j'ai eu l'erreur comme ceci .... argument non valide fourni pour foreach() dans le code de fichier de vue ci-dessous .... dropDownList ($ model, 'book_title', '', array(), array ('empty' => 'select'));?> – jayanthan

Questions connexes