편집 : 어떤 이유로 제출 버튼을 눌렀을 때 페이지를 새로 고치는 것처럼 보입니다 ... 어떤 아이디어입니까?내 jquery 또는 PHP 있나요?
이 간단한 chatroom 스크립트에서 ajax 및 kohana PHP 프레임 워크를 사용하여 작업하고 있습니다. 그래도 새 사용자를 만들기위한 스크립트를 만들 수없는 것 같아요. PHP와 자바 스크립트에서 끔찍한 디버깅 기술을 가지고 있습니다. 를 heres
사용자 클래스의 코드 :
: json으로 요청을 처리 할 수 class Model_User extends Kohana_Model
{
var $_loaded = false;
var $session = false;
var $username = false;
var $loginkey = false;
function __construct()
{
$this->session = Session::instance();
}
function new_user($username)
{
if($this->username_exists($username))
return false;
$this->username = $username;
$this->generate_key();
return $this->update_db();
}
function username_exists($username)
{
if(DB::select()->from('users')->where('username', '=', $username)->execute()->count()<1);
return false;
return true;
}
//helper methods
private function generate_key()
{
if(! $username)
return false;
$this->loginkey = md5($username.((int)mt_srand()*1000));
$this->session->set('loginkey',$this->loginkey);
return true;
}
private function update_db()
{
if(DB::insert('users', array('username'=>$this->username, 'loginkey'=>$this->loginkey))->execute())
return true;
return false;
}
}
과를 heres 코드 말할 아무것도가 있다면 어쨌든 나도 몰라 .. 여기 내 코드입니다
public function action_new_user(){
$user = new Model_User();
$json['username_exists'] = "true";
$username = $_POST['username'];
if(isset($username))
{
if($user->username_exists($username))
{
echo json_encode($json);
return;
}
$user->new_user($_POST['username']);
$json['username_exists'] = "false";
}
$this->request->response = json_encode($json);
}
과를 heres JQuery와 그것이 양식을 제출처럼
<div id="chat_entry_errors">
</div>
<form id="new_chat_entry" name="posttest">
<input type="text" name="username" />
<input type="submit" name="submit" value="New User" />
</form>
$(document).ready(function(){
$('#new_chat_entry').submit(function(){
$.post('json/new_user', $('#new_chat_entry').serialize(),
function(data){
if(data.username_exists=='true'){
$('#chat_entry_errors').html('<div class=\"error\">Sorry that username is currently unavailable. Please choose another.</div>');
}
else {
$('#chat_entry_errors').html('<div class=\"error\">Success!</div>');
}
}
);
});
});
서버 로그 또는 브라우저에서 오류가 발생 했습니까? 또한''
에 큰 따옴표를 사용하지 않고 시도하십시오. 방화 광을 사용합니까? 그것은 귀하의 디버깅과 자바 스크립트에서 중단 점을 설정하고 실행/반환 등 볼 많은 도움이 될 것입니다 ... –
솔직히 오류를 볼 수있는 방법을 모르겠지만 ... 내 PHP에서 그들을 처리하지 않는 한 .. .. 그래서 나는 어떤 오류라도보고 있다고 생각하지 않는다. 아프다. 방화범이 걸려서 설치한다. – Tyler