2016-11-16 11 views
1

私はjQueryのAjaxの機能に問題があります。 PHPコード:要求した後jQueryのAjaxの間違った応答

elseif(isset($_POST['arrayIdEq'])){ 
$answer = "my_answer"; 
return $answer; 

、成功応答が来て、アラートのショーアップ...しかし、ここで問題です。 "$ answer"値の代わりに、アラートが含まれています...メインページのHTMLコード!

<!DOCTYPE html> 
<html lang="pl"> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<title> Medivia</title> 
</head> 
<body> 
<h1>Medivia</h1> 
    <form action="index.php" method="POST"> 
    <label>E-mail:<br><input type="text" name="mail" required></label> 
    <br> 
    <label>Hasło:<br><input type="password" name="pass" required></label> 
    <br> 
    <button name="login">Zaloguj się</button> 
</form> 
</body> 
</html> 

ここで何が起こっているのかわかりません。誰も私にそこに起こったことを説明できましたか?私は何を間違えたのですか?

+1

あなたはajaxリクエストを 'index.php'に投稿しています。それがあなたのPHPコードを持っている場所でなければ、そのページを返すだけです。 –

+1

PHPで '$ answer'を出力していますか? – chris85

+0

@ chris85私はしません。 – Petrus

答えて

3

変数のsuccess変数には、PHPスクリプトの完全な出力が含まれます。

だから、index.phpを呼び出して、あなたが行うとき:

elseif(isset($_POST['arrayIdEq'])){ 
    $answer = "my_answer"; 
    return $answer; 
} 

スクリプトはreturn文が(ない関数内からの)メインスクリプトから呼び出されますが、出力は出力が生成される場合にのみ終了その時点までにスクリプトによって。

あなたのスクリプトは、returnではなく、出力する必要があります - あなたがjavascriptに返すだけを出力する必要があります。

おそらく、完全なページを構築するために使用するindex.phpファイルを使用するよりも、別のAjaxリクエストスクリプトが便利な解決策になります。

+0

私は "return"を "echo"に置き換えましたが、結果は以前と同じです – Petrus

+0

@Petrusスクリプトには '<?php echo 'something';?>'が含まれていますか? – chris85

+1

@ chris85うん、それは動作します:)私の母国語ではない、混乱している人のために申し訳ありません、英語はありません。まだ多くのことを学ぶべきです。助けてくれてありがとう! – Petrus

関連する問題