[英]php Codeigniter and jquery ajax
登錄后,我想用ajax調用codeigniter控制器。 但是,當我執行它時,登錄頁面只會刷新,而ajax url不會調用codeigniter的控制器功能。
我不明白發生了什么。 請幫忙?
下面是我的代碼
function ValidateReg() {
var username = document.getElementById("inputName").value;
var password = document.getElementById("inputPassword").value;
$.post("<?php echo site_url('Panel/login') ?>", {checkUser: username, checkPassword: password, action: "validateUser"},
function (data) {
var result = data + "";
if (result.lastIndexOf("Success" > -1)) {
$.ajax({
url: "<?php echo site_url('Dashboard/state'); ?>",
type: 'POST',
complete: function (done) {
console.log("Finished.")
}
});
}
});
}
這里面板和儀表板是我兩個不同的控制器
它被刷新是因為它是一個提交按鈕,並且必須在表單內部。 因此,它在點擊事件時提交表單。
您需要做的是使您的函數在單擊按鈕時返回false
,這樣就不會刷新該頁面。
像這樣更新您的HTML,
<button type="submit" class="btn button text-uppercase" onclick="return ValidateReg();">Login </button>
而且您的JS函數如下所示:
function ValidateReg() {
var username = document.getElementById("inputName").value;
var password = document.getElementById("inputPassword").value;
$.post("<?php echo site_url('Panel/login') ?>", {checkUser: username, checkPassword: password, action: "validateUser"},
function (data) {
var result = data + "";
if (result.lastIndexOf("Success" > -1)) {
$.ajax({
url: "<?php echo site_url('Dashboard/state'); ?>",
type: 'POST',
complete: function (done) {
console.log("Finished.")
}
});
}
});
return false;
}
如果要執行的操作是轉到“ Dashboard/state
”頁面,那么使用Ajax是錯誤的方法。 您需要改為重定向到該頁面。
$.post("<?php echo site_url('Panel/login') ?>", {checkUser: username, checkPassword: password, action: "validateUser"},
function (data) {
var result = data + "";
if (result.lastIndexOf("Success" > -1))
{
console.log("Finished.");
window.location = "<?php echo site_url('Dashboard/state'); ?>";
}
}
);
用javascript重定向的另一種方法是這樣的
window.location.replace("<?php echo site_url('Dashboard/state'); ?>");
這可能會更好,因為它不會將原始頁面保留在會話歷史記錄中。
函數ValidateReg(){
var username = document.getElementById("inputName").value;
var password = document.getElementById("inputPassword").value;
$.post("<?php echo site_url('Panel/login') ?>", {checkUser: username, checkPassword: password, action: "validateUser"},
function (data) {
var result = data + "";
if (result.lastIndexOf("Success" > -1)) {
$.ajax({
url: "<?php echo site_url('Dashboard/state'); ?>",
type: 'POST',
success: function (done) {
console.log("Finished.")
}
});
}
});
return false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.