我对ajax的返回值有一些问题。
这是ajax代码:
$(document).ready(function() {
var request;
$("#flog").submit(function(event) {
if(request)
request.abort();
event.preventDefault();
var form = $(this);
var serializedData = form.serialize();
var btnname = $('#log').attr('name');
var btnval = $('#log').val();
var btn = '&'+btnname+'='+btnval;
serializedData += btn;
request = $.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: serializedData,
});
request.done(function(data, status, jdXHR) {
alert(data);
});
request.fail(function(jdXHR, status, error) {
});
});
});
它从表单中获取数据并将其发送到另一个页面。
这是第二页:
<?php include 'head.php'; ?>
<?php
if($_POST['login']) {
session_regenerate_id(true);
$con = mysqli_connect("localhost", "Alessandro", "ciao", "freetime")
or die('Could not connect: ' . mysqli_error($con));
$query = 'SELECT * FROM users WHERE username="' . $_POST['user'] . '"';
$result = mysqli_query($con, $query) or die('Query failed: ' . mysqli_error($con));
if(mysqli_num_rows($result) == 0) {
mysqli_close($con);
session_unset();
session_destroy();
$res = false;
return $res;
}
$query = 'SELECT password FROM users WHERE username="' . $_POST['user'] . '"';
$result = mysqli_query($con, $query) or die('Query failed: ' . mysqli_error($con));
$line = mysqli_fetch_array($result, MYSQL_ASSOC);
if(md5($_POST['password']) != $line['password']) {
mysqli_close($con);
session_unset();
session_destroy();
return false;
}
?>
<?php include 'foot.php'; ?>
并且在.done中返回的数据都是html页面。 我怎样才能只检索数据,比如$ res?我试过json_encode()但没有结果。 如果在第二页中我删除了包含'head.php'和包含'foot.php'的行,它就可以了。但是我需要secon页面也是html。 Somenone可以帮助我吗?
答案 0 :(得分:0)
不要使用AJAX的Data属性。
替换
request.done(function(data, status, jdXHR) {
alert(data);
});
带
request.done(function(data, status, jdXHR) {
alert(jdXHR.responseText);
});
答案 1 :(得分:0)
你可以用更简单的方式做到这一点。 在PHP中存储尝试登录变量的结果,例如$ result = 0;首先 如果登录有效,则将其更改为1,并通过在PHP文件末尾执行回显将其返回到ajax。如果您需要返回其他值,例如名称,可以使用分隔符(例如||)将其添加到变量中例如。
在javascript中收集您的返回并转到data = data.split(&#39; ||&#39;); if(data [0] == 0){alert(&#34; Welcome back&#34; + data [1]);} else {alert(&#34; error login ...&#34;)}
以前的使用是正确的,您需要转义PHP脚本中收集的用户。 希望这会有所帮助。