1

次のコードを使用してフォームにデータを送信するとします

var xhr = new XMLHttpRequest(), formData = new FormData();  
formData.append("img", img);
formData.append("user", localStorage["username"]);
formData.append("pass", localStorage["password"]);

xhr.onreadystatechange = function (event) {
    if (xhr.readyState === 4 && xhr.status === 200) {
       var value = xhr.responseText; // value should equal "1234"
        alert( "value = " + value );
    }else{
    alert("none");
}
};
xhr.open("POST", "http://joubin.me/uploads3/upload_file.php", true);
xhr.send(formData);

upload.phpが完了すると、giveid.phpという別のページにリダイレクトされ、表示されるのはID付きのテキスト文字列だけです。

いう1234

JavaScriptを使用してこの正確なIDをキャプチャするにはどうすればよいですか。

覚えておいてください、upload.phpリダイレクトが異なれば、giveid.phpのID番号も異なりますか?

xmlhtmlの応答を調べましたが、理解できませんでした。

これがどのような形になるかです

$password = $_REQUEST['pass'];
$username =  $_REQUEST['user'];
$image = $_REQUEST['img'];
echo $password;
echo "<br/>";
echo $username;
echo "<br/>";
echo $image;
$con = mysql_connect("localhost","ya","right");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
        echo "could not connect";
  }
$asql = "SELECT * FROM `ashkan`.`users` where user='$username' and pass='$password';";

$result = mysql_query($asql);
echo $result;
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

echo $count;

echo 11;
if($count == 1){
$sql = "INSERT INTO `ashkan`.`goog` (`user`, `pass`, `img`) VALUES ('$username', '$passwo$
}
mysql_query($sql);
mysql_close($con);
header( 'Location: giveid.php' ) ;

これがgiveid.phpの内容です

1234

どんな助けでも素晴らしいでしょう。

ありがとう

4

2 に答える 2

2

xhr.onreadystatechangeサーバーから応答を取得するためにを使用する必要があります。

このようなものが機能する可能性があります。

var value;
var formData = new FormData();
formData.append("img", img);
formData.append("user", localStorage.username);
formData.append("pass", localStorage.password);

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function (event) {
    if (xhr.readyState === 4 && xhr.status === 200) {
        value = xhr.responseText; // value should equal "1234"
        alert( "value = " + value );
    }
};
xhr.open("POST", "upload.php", true);
xhr.send(formData);

ここの情報:http ://www.tizag.com/ajaxTutorial/ajaxxmlhttprequest.php

実際の出力を送信する前に、header()を呼び出す必要があることに注意してください。したがって、phpファイルにあるすべてのエコーを取り除きます。エコーすると、クライアントへの応答用の出力バッファーが開始されます。

ここの情報:http://php.net/manual/pt_BR/function.header.php

これがphpページでの唯一のエコーになるはずだと思います。

echo include( 'giveid.php');

Google Chrome Dev Toolの[ネットワーク]タブを使用して、PHPWebページからの応答を表示してみてください。

  • GoogleChromeを起動します。
  • f12を押す、
  • [ネットワーク]タブをクリックし、
  • ページをリロードし、
  • ajax応答ページをクリックします。
  • プレビューをクリックして応答を表示します。

ここの情報:https ://developers.google.com/chrome-developer-tools/docs/network

于 2012-12-06T06:22:09.903 に答える
1

xhrドキュメント

xhr.responseを取得し、それを解析します。

jsが簡単に解析できるように、通常はjson文字列を返します。

googled xhrの例は 次のようなものです:

xhr.onreadystatechange=function()
{
    if (xhr.readyState!=4 || xhr.status!=200)
        return;
    var resp = xhr.responseText;
    var parsed = eval(resp);
}
于 2012-12-06T06:18:38.367 に答える