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 开发工具网络选项卡查看来自您的 php 网页的响应。

  • 启动谷歌浏览器,
  • 按f12,
  • 单击网络选项卡,
  • 重新加载您的页面,
  • 点击ajax响应页面,
  • 单击预览以查看响应。

信息在这里:https ://developers.google.com/chrome-developer-tools/docs/network

于 2012-12-06T06:22:09.903 回答
1

xhr 文档

获取 xhr.response 然后解析它。

我们通常返回一个 json 字符串,以便 js 可以轻松解析它。

谷歌搜索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 回答