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 roller.php
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);
}
나는 아약스에 대한 CakePHP에서의 힘을 사용하고 있지 않다 확신 ...하지만 난 그것을 어떻게 그 이상을 적용 할 수있는 내가 잘 모릅니다. 제안 사항이 있으십니까?
감사합니다.
나는 정말 사람들이 '예'또는 '아니오'를 투표 할 수 있도록 노력 여부를 알 수 없습니다
이컨트롤러가 다음과 같이 표시한다 , 또는 사람/주제에 대해 이름으로 투표 할 수 있습니다. 투표 시스템에 대해 좀 더 자세히 설명해 주시겠습니까? 또한 귀하의 오류를 알려주십시오. 단순히 뭔가를 게시하고 '작동하지 않습니다'또는 '더 좋게 만들자'라고 말하면 Stackoverflow에서 많은 주목을받지 못할 것입니다. – Vigrond