2017-09-06 75 views
0

你好我正在使用Yii框架和oracle數據庫。我需要一些幫助來解決這個問題。我有一個發送電子郵件的表單。我的表單看起來像這樣當下拉選擇時自動生成文本字段值

電子郵件desc:_______ | v | (下拉值形式的數據庫)

電子郵件主題:_________(該字段將自動填寫選擇的電子郵件的主題的數據)

電子郵件主體:_______(該字段將自動填寫選擇的電子郵件的主題的數據)

我的表格:

email_desc |主題| body_email

payment1 |房租支付|地址:****城市:雅加達

恩:我選擇email_desc爲payment1,電子郵件主題將自動填寫爲「支付租金」和電子郵件的身體會自動填寫的地址:****城市:雅加達

這裏是我的形式

<div class="control-group"> 
    <?php echo $form->labelEx($model,'EMAIL_DESC', array('class'=>'control-label')); ?> 
    <?php echo $form->dropDownlist($model,'EMAIL_DESC', 
     (CHtml::listData (TrnProjImplement::model()->getList(),'EMAIL_DESC','EMAIL_DESC')), 
      array(
      'empty'=>'--Pilih salah satu--', 
      'value'=>$model->EMAIL_DESC, 
      'id'=>"dropDown", 
      'ajax'=>array(
       'type'=>'GET', 
       'url'=>CController::createUrl('email/field'), 
       'update'=>'#subject', 
       'data'=>array('EMAIL_DESC'=>'js: this.value'), 
      ), 
      )); 
      ?> 
     <span class="help-inline text-error"><?php echo $form->error($model,'EMAIL_DESC'); ?></span>   
</div> 

    <div class="control-group"> 
     <?php echo $form->labelEx($model,'SUBJECT', array('class'=>'control-label')); ?> 
     <?php echo $form->textField($model,'SUBJECT',array('size'=>60,'maxlength'=>100, 'style'=>'width:600px', 'id'=>"subject"));?> 
     <?php //echo CHtml::activeTextField($model, 'SUBJECT', 
     // array(
      // 'ajax'=>array(
       // 'type'=>'POST', 
       // 'url'=>Yii::app()->createUrl('email/create'), 
       // 'id'=>'subject', 
      //), 
     //)); 
     ?> 
     <span class="help-inline text-error"><?php echo $form->error($model,'SUBJECT'); ?></span> 
    </div> 

    <!--<div class="control-group" id="body-email">--> 
    <div class="control-group"> 
     <?php echo $form->labelEx($model,'BODY_EMAIL', array('class'=>'control-label')); ?> 
     <?php echo $form->textArea($model,'BODY_EMAIL',array('size'=>1000,'maxlength'=>1000,'style'=>'height:200px; width:600px;', 'id'=>"body-email")); ?> 
     <span class="help-inline text-error"><?php echo $form->error($model,'BODY_EMAIL'); ?></span> 
    </div> 

的JavaScript

<script> 
function insertField(){ 
     var desc = document.getElementById("dropDown").value; 
     var subj = document.getElementById("subject").value; 
     var body = document.getElementById("body-email").value; 

     $.ajax({ 
      type : "POST", 
      url : "<?php echo Yii::app()->createUrl("emaildetail/field"); ?>", 
      data : { 
       "desc" : desc, 
       "subj" : subj, 
       "body" : body, 
      }, 
      success: function(){ 
       alert('asd'); 
      }, 
     }); 
</script> 

我控制器

public function actionField(){ 

if(isset($_POST['desc'])){ 
    $connection=Yii::app()->db; 

    $desc = Yii::app()->request->getPost('desc'); 
    $subj = Yii::app()->request->getPost('subj'); 
    $body = Yii::app()->request->getPost('body'); 

    $sql = 'SELECT SUBJECT FROM EMAIL_DETAIL WHERE EMAIL_DESC = $desc'; 
    $sql2 = 'SELECT BODY_EMAIL FROM EMAIL_DETAIL WHERE EMAIL_DESC = $desc'; 

    $model2 = EMAIL_DETAIL::model()->findByAttributes(array('EMAIL_BODY'=>$desc)); 

    if(isset($desc)){ 
     $subj = $model->SUBJECT; 
     $body = $model->EMAIL_BODY; 
    } 
} 
} 

我能得到email_desc的價值,但我仍然無法自動填寫等領域

回答

0

你可以改變你的代碼如下解決方案。

請改變你的形式如下代碼:

<div class="control-group"> 
    <?php echo $form->labelEx($model,'EMAIL_DESC', array('class'=>'control-label')); ?> 
    <?php echo $form->dropDownlist($model,'EMAIL_DESC', 
     (CHtml::listData (TrnProjImplement::model()->getList(),'EMAIL_DESC','EMAIL_DESC')), 
      array(
      'empty'=>'--Pilih salah satu--', 
      'value'=>$model->EMAIL_DESC, 
      'id'=>"dropDown", 
       'ajax'=>array(
        'type'=>'POST', 
        'url'=>CController::createUrl('email/field'), 
        'data'=>array('EMAIL_DESC'=>'js: this.value'), 
        'success'=> 'function(response) {if (response.status == "success") { 
           $("#SUBJECT").val(response.subj); 
           $("#BODY_EMAIL").val(response.body); 
          } else { 
           $("#SUBJECT").val(""); 
           $("#BODY_EMAIL").val(""); 
          } 
        }', 
        'error'=> 'function(){alert("AJAX call error..!!!!!!!!!!");}', 
       ), 
      )); 
      ?> 
    <span class="help-inline text-error"> 
     <?php echo $form->error($model,'EMAIL_DESC'); ?> 
    </span>   
</div> 
<div class="control-group"> 
    <?php echo $form->labelEx($model,'SUBJECT', array('class'=>'control-label')); ?> 
    <?php echo $form->textField($model,'SUBJECT',array('size'=>60,'maxlength'=>100, 'style'=>'width:600px', 'id'=>"subject"));?> 
    <span class="help-inline text-error"><?php echo $form->error($model,'SUBJECT'); ?></span> 
</div> 
<div class="control-group"> 
    <?php echo $form->labelEx($model,'BODY_EMAIL', array('class'=>'control-label')); ?> 
    <?php echo $form->textArea($model,'BODY_EMAIL',array('size'=>1000,'maxlength'=>1000,'style'=>'height:200px; width:600px;', 'id'=>"body-email")); ?> 
    <span class="help-inline text-error"><?php echo $form->error($model,'BODY_EMAIL'); ?></span> 
</div> 

請改變你的控制器代碼:

<?php 

public function actionField() { 
    if (Yii::app()->request->isAjaxRequest){ 

     $desc = Yii::app()->request->getPost('EMAIL_DESC'); 
     $model = EMAIL_DETAIL::model()->findByAttributes(array('EMAIL_BODY' => $desc)); 

     if (!empty($model)) { 
      $data['status'] = 'success'; 
      $data['subj'] = $model->SUBJECT; 
      $data['body'] = $model->EMAIL_BODY; 
     } else { 
      $data['status'] = 'error'; 
      $data['subj'] = ''; 
      $data['body'] = ''; 
     } 
     echo json_encode($data); 
     Yii::app()->end(); 
    } else 
    throw new CHttpException(400, '404_error_message'); 
} 
?> 

我希望這將幫助你。謝謝!

+0

我得到這個「阿賈克斯呼叫錯誤」.. sry真的很晚relpy – Trainee

+0

請張貼您的錯誤在ajax請求。 –

+0

我仍然無法獲得控制器下拉列表的值,我將其用於查詢以顯示我的主題的數據。這是我的查詢 「$ sql = Yii :: app() - > db-> createCommand('SELECT EMAIL_CATEGORIZE FROM MST_EMAIL_BODY WHERE EMAIL_DESC = $ desc') - > queryScalar();」 然後我得到一個錯誤我的查詢,因爲它仍然'$ desc'不是下拉的值選擇 – Trainee

相關問題