【发布时间】:2014-05-08 12:36:02
【问题描述】:
我尝试了两天来解决这个问题,但我没有成功。
我的 identificacaoEmigrante.php 模型有一个页面 _form.php,我的 filiacao.php 模型有一个页面 _form.php。 在 identificacaoEmigrante 模型中,我有如下字段:
- IdEmigrante
- 名称
- idConjuge
- nomeConjuge
- idFiliacao (FK)
在 filiacao 模型中,我有如下字段:
- idFiliacao (PK)
- 名目
- nomePai
由此,我想将 identificacaoEmigrante _form 保存在 $_SESSION 变量中,以便在其他页面中获取这些值。
当我点击带有标签的按钮:“Adicionar nova filiacao”时,我想去 filiacao _form 并填写该表格并 当我回来时,我希望 identificacaoEmigrante _form 填写以前输入的数据。 IE,我正在填写 identificacaoEmigrante _form 并且 filiacao 还不存在,所以,我需要点击按钮“adicionar nova filiacao”并通过 TbButton 事件的 onClick 调用 filiacao _form 并填写该字段。当我从 filiacao _form 回来时,我希望 identificacaoEmigrante _form 的字段填充 $_SESSION 变量。
我的 identificacaoEmigrante _form.php:
<div class="form container">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'identificacao-emigrante-form',
// Please note: When you enable ajax validation, make sure the corresponding
// controller action is handling ajax validation correctly.
// There is a call to performAjaxValidation() commented in generated controller code.
// See class documentation of CActiveForm for details on this.
'enableAjaxValidation'=>false,)); ?>
<?php echo $form->errorSummary($model); ?>
<div class="container">
<div class="row">
<?php echo $form->labelEx($model,'idEmigrante'); ?>
<?php echo $form->textField($model,'idEmigrante', array('id'=>'idE')); ?>
<?php echo $form->error($model,'idEmigrante'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'nome'); ?>
<?php echo $form->textField($model,'nome',array('size'=>60,'maxlength'=>64, 'id'=>'nome')); ?>
<?php echo $form->error($model,'nome'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'dtNasc'); ?>
<?php echo $form->textField($model,'dtNasc'); ?>
<?php echo $form->error($model,'dtNasc'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'idConj'); ?>
<?php echo $form->textField($model,'idConj',array('size'=>10,'maxlength'=>10)); ?>
<?php echo $form->error($model,'idConj'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'nomeConj'); ?>
<?php echo $form->textField($model,'nomeConj',array('size'=>60,'maxlength'=>64)); ?>
<?php echo $form->error($model,'nomeConj'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'idFiliacao'); ?>
<?php
if ($model->isNewRecord) {
$this->widget('bootstrap.widgets.TbSelect2', array(
'model' => $modelFiliacao,
'attribute' => 'idFiliacao', //'id' CAMPO A BUSCAR
'data' => CHtml::listData($modelFiliacao->findAll(), 'idFiliacao', 'nomePai', 'nomeMae'),
'htmlOptions' => array('placeholder' => 'Selecione a Filiação',),
)); //listData($modelDESEJADO->findAll(), 'CAMPO A SER MODIFICADO', 'CAMPO A MOSTRAR NO COMBOBOX')
} else if (!$model->isNewRecord) {
$qry = "SELECT filiacao.idFiliacao, nomePai, nomeMae from filiacao, identificacaoEmigrante where filiacao.idFiliacao = identificacaoEmigrante.idFiliacao";
$result = Yii::app()->db->createCommand($qry)->queryAll();
$data=CHtml::listData($result, 'idFiliacao', 'nomePai', 'nomeMae');
$this->widget('bootstrap.widgets.TbSelect2', array(
'model' => $model,
'attribute' => 'idFiliacao', //'id' CAMPO A BUSCAR
'data' => CHtml::listData($modelFiliacao->findAll(), 'idFiliacao', 'nomePai', 'nomeMae'),
'htmlOptions' => array(
'options' => $data,
),
));
}
?>
<?php
$this->widget(
'bootstrap.widgets.TbButton',
array(
'type' => 'primary',
'buttonType' => 'ajaxLink',
'label' => 'Adicionar nova Filiação',
'htmlOptions'=> array(
'onClick'=> 'saveSession()',
)
));
?>
<?php echo $form->error($model,'idFiliacao'); ?>
</div>
<div class="row">
<?php
$this->widget(
'bootstrap.widgets.TbButton',
array(
'type' => 'primary',
'buttonType' => 'submit',
'label' => 'OK',
)
);
?>
</div>
</div>
<?php
$this->endWidget();
?>
</div><!-- form -->
我的站点控制器.php:
...
public function actionMyActionName() {
Yii::app()->session['idE'] = $_POST['idE'];
echo json_encode(array("ide"=>$_POST['idE']));
}
...
我的 Javascript (a.js) 代码:
function saveSession() {
$.ajax({
type: "POST",
//url: "/museu_emigracao/index.php?r=site/savesession",
url: '/museu_emigracao/index.php?r=site/myActionName',
data: {
idE : $("#idE").val()
},
success: function (data) {
console.log(data.idE);
},
error: function (data) {
alert(data + 'erro');
},
dataType: null
});}
我测试了 dataType: JSON 和其他类似“文本”的类型,但我的代码没有返回任何内容,因此 null 值应该是正确的。
data.idE返回undefined,但是在chrome的debug中,它与value一起出现。
有什么建议吗?
谢谢。
【问题讨论】:
标签: javascript php ajax yii undefined