Maison > développement back-end > tutoriel php > 服务器端如何向客户端发送数据?

服务器端如何向客户端发送数据?

WBOY
Libérer: 2016-06-23 13:58:07
original
1779 Les gens l'ont consulté

我用post方法向服务器端发送了一个用户名和密码,想利用php实现服务器对该行为的响应,返回一个登录成功的字符串,该如何实现呢?客户端又该如何获得这个字符串呢?


回复讨论(解决方案)

去看w3school

写了个demo,输入username=fdipzone,password=123456服务器回返回成功,否则返回失败。
client.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head>  <meta http-equiv="conent-type" content="text/html; charset=utf-8">  <title> client post</title>  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> </head> <body>  <script type="text/javascript">  function fsubmit(){	  $.post("server.php", { username: $("#username").val(), password: $("#password").val() },function(ret){		if(ret.success==true){			alert('login success');		}else{			alert('login fail');		}	  },'json');  }  </script>  <p>username:<input type="text" id="username"></p>  <p>password:<input type="text" id="password"></p>  <p><input type="button" value="submit" onclick="fsubmit()"></p>  </body></html>
Copier après la connexion

server.php
<?php$username = isset($_POST['username'])? $_POST['username'] : '';$password = isset($_POST['password'])? $_POST['password'] : '';$ret = array();if($username=='fdipzone' && $password=='123456'){    $ret['success'] = true;}else{    $ret['success'] = false;}echo json_encode($ret);?>
Copier après la connexion

ajax吗? 先说说你是怎样post到服务器的。

<script type="text/javascript">function submits(){// 实现账户与密码向服务器的发送// 服务器地址中传递的有参数a=1// 从服务器端接收数据num// 对num进行乘以2运算,再将结果发送给服务器端}</script><form id="loginform" action="./login.php?a=1" method="post" >username<input type="text" id="username" name="account">password<input type="password" id="pwd" name="password" ><input type="button" onclick="submits();"></form>
Copier après la connexion


<?phpif($_POST['a'] == 1){$uName = $_POST['account'];$uPassword = $_POST['password'];// 比较数据库中信息(省略)// 向客户端传递数据num// 获得客户端发送来的运算结果}?>
Copier après la connexion



就是为了实现客户端先向服务器发送数据,服务器再向客户端响应数据,最后客户端向服务器端发送对响应数据的运算结果。
总共是三轮数据交换过程,这个该怎么实现呢?

三个过程希望能通过点击一次登录按钮,就实现整个过程。

你就是按了一个按钮后,调用一个方法,然后方法里面再callback其他方法。直到流程走完。
可以这样写。

function fsubmit(){
$.post("server.php", { username: $("#username").val(), password: $("#password").val() },function(ret){
if(ret.success==true){
// 登入成功,这里可以调用第二个方法
doSecondFunc();
}else{
alert('login fail');
}
},'json');
}

function doSecondFunc(){
// do sth
如果还有,可以在这里再调用 thrid function
}

地址中可以加入参数吗,比如“server.php?a=1”,这样可以吗?

地址中可以加入参数吗,比如“server.php?a=1”,这样可以吗?



可以 但是 a 需要使用$_GET['a']来获取

<!DOCTYPE html><html><head>    <title></title>    <script            src="http://code.jquery.com/jquery-latest.js"></script></head><body><script>    $(document).ready(function () {        $.post('test.php?gettest=1', {"test": "test"}, function (data) {            alert(data.get);            alert(data.post);        }, 'json')    })</script></body></html>
Copier après la connexion


$array = array(    'get' => $_GET['gettest'],    'post' => $_POST['test'],);echo json_encode($array);
Copier après la connexion


搞了一下午,终于弄明白了,谢谢了

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal