我有以下表格,其中输入了工人代码。
<form id="tck" method="POST">
<input type="text" name="ticket" maxlength="10">
<button type="submit">ticket</button>
</form>
而这个数据是通过AJAX
$(document).ready(function () {
$(".dismiss").click(function () {
$(".response").fadeOut(500);
});
$(document).on('submit', '#tck', function () {
var data = $(this).serialize();
$.ajax({
type: 'POST',
url: 'employee.php',
data: data,
success: function (response) {
//$(".response").html(response);
$(".response>span.message").html(response);
$(".response").fadeIn(200);
window.setTimeout(function () {
$('.response').fadeOut(500);
}, 6000);
}
});
return false;
});
});
所以,我需要知道下面发送了什么值input
并将其保存在session
.
我如何知道现场发送了哪些数据input
?
问题是这样的:
A. 在客户端:
index.php
您有一个表单和 Javascript/jQuery 代码来处理发送 Ajax 请求。
在这种情况下,Ajax 所做的是通过在服务器端执行的文件向服务器发送/接收内容。在您的示例中,该文件将是
employee.php
.了解 Ajax 请求有一些方法可以帮助您了解服务器端发生了什么,这一点很重要。一般来说,Ajax 请求应该至少有一种方法
done
和另一种方法fail
。该方法done
的作用与您当前的方法几乎相同success
,但后者自 jQuery 3 以来已被弃用,因此最好使用done
.好的,所以里面
done
将处理来自服务器端的可能的成功响应。在那里,您可以收集服务器响应的内容并使用该数据进行操作,以将其显示在屏幕上或用于其他任何事情。但是请求可能会失败。在这种情况下,您必须实现一种方法
fail
来报告故障及其可能的原因。客户端代码将是这样的。在这里我把
index.php
完整的。我做了几个改变。其中,我把action直接放在了form上,这样jQuery代码更加统一。一件非常重要的事情是,文件 URL
employee.php
必须正确。既然您现在拥有它,它应该与index.php
. 如果不在同一个文件夹中,则必须指明。我已经删除了
beforeSend
...我不知道是否有必要。我已经留下了fadeOut
你所拥有的和 setTimeOut ......虽然目前还不清楚你需要它们做什么。我这样说是为了让你知道这不是必需的,除非你需要它。B. 在服务器端:
employee.php
的内容
employee.php
应该处理data
jQuery 请求中通过的数据。在这种情况下,它是序列化表单的内容。测试预期元素是否有数据的一种方法是使用
isset
三元运算符。PHP 看起来像这样:
如果一切顺利,实现这段代码,你会在
div
带有id='respuesta'
变量的内容中看到$ticket
。其他类型的数据可以从 PHP 发送,例如完整的 JSON 对象……或其他东西。
从这个意义上说,Ajax 的可能性非常有趣,例如,从服务器获取信息并动态更新屏幕上呈现的内容,而无需刷新页面......