yiiフレームワークの下でコントローラからビューページの値を取り、ビューページからコントローラの値を取得する

2504 ワード

初めてphpに触れてwebページを書くのは、ゼロから始まります.
Windowsの下でwampコンビネーションパッケージを使って、また高度に集積して、直接ダウンロードしてインストールして、
yiiフレームワークを使用してウェブサイトを構築しました.このネット上のチュートリアルは非常に多く、ドキュメントもたくさんあります.
自分が直面した問題を簡単に記録します.
コントローラからビューページの値をとる
例えば
viewページには
<span style="font-size:18px;"><form id="upForm" action="<?php echo $this->createUrl('viewTask');?>"
<span style="white-space:pre">	</span>method="post" enctype="multipart/form-data">     </span>
<span style="font-size:18px;"><input type="text" name="taskname" value="" /> 
     <input type="text" name="attachment" value="" /> 
     <input type="submit" name="createTask" value="    " /> </span>
<span style="font-size:18px;"></form></span>

注意中のmethodはpostと定義されており、コントローラxxcontrollerでこのテキストボックスの値とボタンクリックイベントを取得するには、コントローラ内の対応するactionXXX()で使用する必要があります.
$taskname = $_POST['taskname'];
$attachment = $_POST['attachment'];
ボタンイベントがトリガーされるかどうかを判断します.
if(isset($_POST['createTask'])){  ...  }
ビューでコントローラの値を取得するのは面倒なのでajaxが取得できると聞いて、半日かけて検討しました.
viewに書く
</pre><pre name="code" class="javascript"><head>
<script type="text/javascript" src="jquery-2.1.1.min.js">
</script>
<script>
function myfunction()
{	
	$.get("index.php?r=project/viewTask", 
		{
	   	name:"YaoMing",
	    	tage:12
	  	},
	   function(a,status) {
	      alert(a);
	});
	
}
</script>
</head>

上のjquery-2.1をダウンロードするには1.min.jsはprotectedフォルダと同じディレクトリに配置され、nameとageはcontrollerに渡される値です.
そしてその中のfunctionのaはcontroller ProjectControllerの中のactionView Task()関数から取得したechoの値22である.
でもpublic function actionViewTask()にも書く必要があります
if(Yii::app()->request->isAjaxRequest)
{
<span style="white-space:pre">	</span>$name = $_GET['name'];
<span style="white-space:pre">	</span>$age = $_GET['age'];
<span style="white-space:pre">	</span>echo $age+10;
}
else
{
<span style="white-space:pre">	</span>//       
}