全て、
私はMVCパターンを使用して小さなPHPサイトを構築しています。コントローラ内には、表示ページに送信したい一連の記事があります。ただし、記事を一度に1つずつビューに表示し、ユーザーがいくつかのボタンの1つをクリックしたときにのみ次の記事に変更するようにします。1つのボタンでユーザーは次の記事を見ることができ、他のボタンではユーザーが記事を「採点」または承認して(この情報はコントローラーに返送されます)、次の記事に進むことができます。
どうすればいいですか?ボタンはフォーム内にあり、それぞれにJavascript関数がアタッチされています。コードの簡略化されたバージョンは次のようになります。
コントローラの場合:
<?php
$array=array(10,11,12,13,14,15,16);
$_SESSION['next']=true;
foreach($array as $a){
if($_SESSION['next']){
$_SESSION['next']=false;
$view=$a;
}
}
?>
ビューで:
<script type="text/javascript">
function doOne(){}
function doTwo(){}
</script>
<form class="ReviewArticles" method='POST' accept-charset="UTF-8" action='index.php?action=reviewArticles'>
<p>
<textarea rows="4" cols="60" name='article' id='article' WRAP=SOFT>
<?php
echo $view;
?>
</textarea>
</p>
<p>
<button type="button" name='showNext1' id='showNext1' onclick="doOne()" >Show next 1</button>
<button type="button" name='showNext2' id='showNext2' onclick="doTwo()" >Show next 2</button>
</p>
</form>
配列内の次のアイテムをロードするために、コントローラーに情報を送り返す必要があります。また、記事のユーザーの「承認」に関連する他のデータを送信する必要があり、それらを一緒に実行する必要があります(ボタンは1つだけ)。