php Ajax の戻り値が 1 になるのはなぜですか? フロントエンドがアラート (データ) を受信し、Web ページ全体の HTML コードを表示するのはなぜですか (smarty を使用しており、返された値も Smarty テンプレートに含まれています)
php 出力後に exit を追加1; 大丈夫です
まだです!ガイダンスを求めています
つまり、ajax リクエスト全体も処理したということです
通常はビジネス ロジックを実行するだけです
もっと具体的に教えていただけますか?
admin.php のコードを確認するには
class adminController{
public function __construct(){
session_start(); > if(!(isset($_SESSION['username']))&&(PC::$method!='login')&&(!$_COOKIE['username'])){
$this-> showmessage('続行する前にログインしてください!', 'admin.php?controller=admin&method=login');
}else{
$this->auth = isset($_SESSION['username']) ?$_SESSION['auth']:array();
}
}
public function login(){
if (!isset($_POST['submit'])) {
VIEW::display('admin/login.html');
}else {
$this->checklogin();
}
public function checklogin(){
$username = daddslashes($_POST['username']);
$password = md5(daddslashes($_POST['password'])); ('admin')->findOne_by_username($username);
if((!empty($auth))&&$auth['password']==$password){
$_SESSION['username' ]=$username;
//setcookie('username',$username,time()+3600*12);
exit; ;script>window.location.href='admin.php?controller=admin&method=adminlist'";
}elseif (empty($auth)){
echo "ユーザーは存在しません";
exit;
//$this->showmessage("ユーザーが存在しません",'admin.php?controller=admin&method=login' );
}elseif ((!empty($ auth)) &&$auth['password']!=$password){
echo "間違ったパスワード"
//$this->showmessage("間違ったパスワード",'admin.php?controller= admin&method=login ');;//パスワードが間違っています
}
}
admin.php はエントリファイル
php
header("Content-type: text/html; charset=utf-8");
//url形式index.php?controller=コントローラ名&method=メソッド名
require_once('config.php ') ;
require_once('framework/pc.php');
PC::run($config);
特定のフレームワークを使用している場合、このフレームワークには ajax が必要ですmode
通常、フレームワークは完全なプロセスを完了し、ページ html を出力します
しかし、ajax は通常ページを出力する必要がないため、ワークフローを変更するには ajax モードをオンにする必要があります
設定するときに、ajax について何も書きませんでした
自分で書く場合は
を追加する必要があります ajax と通常のページでは出力方法が異なるので統一処理は当然問題があります
ajax を使用する場合リクエストしてからパラメータを追加し、エントリ プログラム admin.php にテンプレートをロードしないように指示します。
ここでは、
$.ajax({
...
}); >送信はありません $_POST['submit'])
管理コントローラ
メソッド
が実行されます VIEW::display('admin/login.html');これで、テンプレートが読み込まれました。
Firefox の Firebug または Chrome コアブラウザの開発者ツールの NewWork を使用して送信し、submit パラメータが送信されたかどうかを確認することをお勧めします。
または、submit の値である名前が form1 にあるかどうかを確認してください。 589e78c7eb2cbd0f75265b40a8ae1b25これは firebug を使用して行ったものです
応答も送信されます
echo 1 の後にどの形式でもテキスト出力がないようにするには、対応するページの PHP 終了記号を変更しますか? >
を削除し、ブラウザに ajax アクセス アドレスとパラメーターを直接入力して、ステップごとにデバッグします。
ajaxReturn
もっと詳しく言う 具体的に?
私も同じ問題に遭遇しました、それを解決する方法