私はAJAXとPHPで検証しています.Gmailにログインしたときに電子メールを書いた後、その電子メールがレコードに存在するかどうかを検証します。コードイグナイターのフレームワークを使用していますが、私のコードのエラーは、私が電子メールデータを投稿するボタンをクリックしたときです:コードイグナイターAjaxポストショー404
parsererrorのでSyntaxError:位置0でJSONで予期しないトークンA(...)
ここではコードです:
コントローラー
/**
* Controller for email_validation
*
* @param the_user_email string
* @return bool
*/
**dssad**
public function email_validation()
{
if($this->input->is_ajax_request())
{
$the_user_email = $this->input->post('login_string');
echo $the_user_email;
$email_exists = $this->email_validation($the_user_email);
if ($email_exists != FALSE) {
echo json_encode([
'status' => 1,
'username' => $if_email_exists['username'],
'email' => $if_email_exists['email']
]);
}
else
{
echo json_encode([
'status' => 0,
]);
}
return FALSE;
}
else
{
show_404();
}
}
モデル
/**
* Select a user email to validate
*
* @param string the user email to check
* @return email if True
* @return bool if False
*/
public function email_validation($the_user_email)
{
$query = $this->db->select('username,email')
->from(config_item('user_table'))
->where('email', $the_user_email)
->limit(1)
->get();
if($query->num_rows() == 1)
return $query->row();
return FALSE;
}
ビュー
<center>
<div class="row">
<div class="col-md-12">
<div class="row" id="login-card">
<div id="card-slide">
<div class="username-div">
<div id="user-img">
<img class="img-circle" src="img\lorem.jpg" alt="">
</div>
<div class="form-group">
<input type="email" class="form-control" name="login_string" id="login_string" placeholder=" Enter your email">
<div class="form-group"> </div>
</div>
<a class="btn-primary form-control" id="next-btn">Next</a>
</div>
<div class="pass-div">
<i id="arrow-left" class="fa fa-arrow-circle-left fa-2x" aria-hidden="true"></i>
<div id="user-img">
<img class="img-circle" src="" alt="">
</div>
<h1 id="Username_label">User Name</h1>
<label for="Username_label" id="Email_label">[email protected]</label>
<br><br>
<div class="form-group">
<input type="text" class="form-control" tabindex="-1" name="login_pass" placeholder=" Enter your password"
autocomplete="off" readonly="readonly" onfocus="this.removeAttribute('readonly');" />
<div class="form-group"> </div>
</div>
<button type="submit" class="btn btn-primary form-control" tabindex="-1" name="submit" id="submit_button">Sing In</button>
</div>
</div>
</div>
<p style="margin: 2em;"> <!-- Forgot account -->
<a href="http://192.168.0.102/octopus/login/recover">
Can't access your account?
</a>
</p>
</div>
</div>
</center>
Ajaxのポスト
$(document).ready(function(){
$('#next-btn').click(function(e){
e.preventDefault();
$.ajax({
type: 'post',
cache: false,
url: '/octopus/login/email_validation',
data: {
'login_string': $('#login_string').val()
},
dataType: 'json',
success: function(response){
console.log(response);
if(response.status == 1){
$('#Username_label').replaceWith(response.username);
$('#Email_label').replaceWith(response.email);
$('#card-slide').addClass('show');
$('#login-card').css('height','435px');
}else if(response.status == 0){
alert('This email does not exists.');
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
return false;
});
});
私のモデルではエラーでした。 –
これらのMVCフレームワークでほとんどの時代が流れます:D –