【发布时间】:2014-06-15 14:49:37
【问题描述】:
我在我的视图文件中使用了以下按钮(不要关注第二个,但我只是想告诉你为什么我不使用普通的表单提交):
<?php echo CHtml::Button('Search Symptom(s)', array('id'=>'search')); ?>
<?php echo CHtml::Button('Add Another Symptom to Search', array('id'=>'addSymptom')); ?>
当用户点击这个 javascript 运行的按钮时(它在 document.ready 函数中)
$('#search').click(function()
{
//create new symptom in javascript
var newSymptom =
{
symptomCode: $('#symptomToBeSearchedCode').val(),
dateSymptomFirstSeen: $('#dateSymptomSeen').val(),
symptomTitle: $('#symptomToBeSearchedTitle').val()
};
//pass new symptom into symptomsList array
symptomsList.push(newSymptom);
//make ajax call to server
$.ajax({
type:'POST',
url: '/mysymptomsbook/index.php?r=symptomhistory/search',
data:{symptomsList: symptomsList} ,
dataType:'html'
});
});
symptomsList 是一个带有 JS 对象的数组
这是我的控制器操作中的代码:
if(isset($_POST['symptomsList']))
{
foreach($_POST['symptomsList'] as $symptom)
{
//populate symptom search model attributes with user id, current date, and form input
$newSymptom = new Symptomhistory;
$newSymptom->setAttributes(array(
'user_id'=>Yii::app()->user->id,
'dateSearched'=>date('Y-m-d'),
'symptomCode'=>$symptom['symptomCode'],
'dateSymptomFirstSeen'=>$symptom['dateSymptomFirstSeen'],
'symptomTitle'=>$symptom['symptomTitle'],
));
//save search history
$newSymptom->save();
//add into the searched for symptoms code the latest code
array_push($symptomCodes, strval($symptom['symptomCode']));
}
$this->redirect(array('disease/index'));
}
我计划使用重定向将 $symptomCodes 数组发送到另一个控制器操作(DiseasesController 和 actionIndex),但即使没有传递任何内容,重定向也不起作用。模型会正常保存到我的数据库中。
有人知道什么是错的吗?我认为它与 Ajax 有关,因为它正在等待响应,但我希望我的控制器改为重定向。任何帮助一如既往,非常感谢:)
【问题讨论】:
标签: javascript php ajax yii