javascript - 从 php 到 javascript 的返回值

标签 javascript php

我编写了一个注册/登录表单,我通过 POST 将用户信息发送到正在数据库中查找的 PHP。我希望 PHP 返回一个正确或错误的值给 js,但我现在不知道该怎么做。 这是我的js:

    ui.onClick_regsubmit=function()
{
var fname=document.getElementById('fname').value;
var lname=document.getElementById('lname').value;
var password=document.getElementById('password').value;
var mail=document.getElementById('mail').value;
var affiliation=document.getElementById('affiliation').value;
var data = new FormData();
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
data.append("fname",fname);
data.append("lname",lname);
data.append("password",password);
data.append("mail",mail);
data.append("affiliation",affiliation);
xhr.open( 'post', 'PHP/registration.php', false );
xhr.send(data);
window.alert(affiliation);
}

还有 php:

<?php
     mysql_connect('localhost','root','') or die('Cannot connect mysql server');
       mysql_select_db('ChemAlive_login')  or die('cannot connect database');

   $lname=$_POST['lname'];
   $fname=$_POST['fname'];
  $password=$_POST['password'];
  $mail=$_POST['mail'];
  $affiliation=$_POST['affiliation'];

  $q=mysql_query("select * from login where mail='".$mail."' ") or die(mysql_error());
  $n=mysql_fetch_row($q);
  if($n>0)
{
  $q=mysql_query("select password  from login where mail='".$mail."' ");
  $pp=mysql_fetch_row($q);
  if($pp[0]=$password) echo "ok";
  else echo "wrong";
}
else
{   $insert=mysql_query("insert into login values('".$fname."','".$lname."','".$mail."','".$password."','".$affiliation."')") or die(mysql_error());}
?>

我想返回给js这个正确或错误的值。怎么做?

最佳答案

xhr.onload=function()
{
 if (xhr.status==200) 
 {
  alert(xhr.response);
 }else
 {
  alert("unknown server error");
 }
}

如果服务器发送响应代码会更好,JavaScript 会将此代码传输到文​​本中。例如:

onload=function()
{
 switch(xhr.response)
 {
  case "0":{alert("unknown error")};break;
  case "1":{alert("email is already used")};break;
  ...
 }
}

我认为已经很清楚了

关于javascript - 从 php 到 javascript 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216788/

相关文章:

javascript - ThreeJS透明PNG纹理黑色

javascript - 页面加载/刷新时在后台运行扩展

javascript - 有没有办法从 js 对象中删除整个属性

php - mysql 中是否有任何预定义函数可以获取先前的值?

php - 如何在后续查询中使用 SQL 查询的结果?

javascript - 在 Jasmine 测试中加载 $modal 的模拟

javascript - 从动态文本区域获取值(value)

php - 加密 Controller 代码

php - 使用 eloquent laravel 获取连接表数据

php - 以第一个位置排序问题