CakePHP 2.0とAjaxで簡単な投票を作成しようとしています。私はこのフレームワークの初心者ですので、私は本当に難しいと思っています。CakePHP 2.0でajaxで簡単投票を作成する方法
私は、テーブル内のフィールド "numberVotes"を更新するためにコントローラでアクションを呼び出すアクションを呼び出すリンクを作成したいとします。データベース
私はそれを試していますが、私はそれをうまくやっているのか分かりません。 私は今、これを持っている:
//posts/view.ctp ます$ this-> HTML->スクリプト( 'votar'、配列( 'インライン' =>偽)); //これは、レイアウト
echo '<div id=\'vote\'>';
echo $this->element('vote', array('id' => $post['Post']['id']));
echo '</div>'
要素/ vote.ctp
if(!empty($voting)){
echo "You have voted!!!";
}else{
echo '<a href="#" onclick="votar(\''.$id.'\');return false;">Vote here!!</a>
}
ウェブルート/ JS/vote.js
//XMLHttpRequest Ajax
function newAjax()
{
var xmlhttp=false;
try
{
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
function voting(num) {
var url;
var obCon = document.getElementById('vote');
var ajax = newAjax();
url = 'http://localhost:8888/mysite/posts/voting/' + num;
alert(url);
ajax.open("GET", url);
ajax.onreadystatechange=function(){
if(ajax.readyState==4){
if(ajax.status==200){
obCon.innerHTML=ajax.responseText;
}else if(ajax.status==404){
obCon.innerHTML = "Page not found";
}else{
obCon.innerHTML = "Error:"+ajax.status;
}
}
}
ajax.send(null);
}
上にロード//コントローラ/ PostsCont
public function voting($id = null){
... //stuff to add the vote in the DB
$this->set(array('id' => $id, 'voting' => 'yes'));
$this->render('/Elements/vote', false);
}
roller.php私は私はAJAXのためのCakePHPの電源を使用していないと確信しています...しかし、私はそれを適用することができますまたはそれを行う方法をどこ知りません。 提案がありますか?
ありがとうございました。
を、または氏名で人/主題に投票することもできます。あなたの投票システムをもう少し詳しく説明できますか?また、どのようなエラーが発生したか教えてください。単純に何かを掲示し、 'それは動作していない'または 'それをより良くする'と言っても、ここではStackoverflowで大きな注目を集めることはありません。 – Vigrond