$.post 不发布数据
$.post not posting data
这是我下面用于页面.php文件的代码。
<?php session_start(); ?>
<script type="text/javascript" src="js/jquery-1.8.2.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript" src="js/new-landing.js"></script>
<script type="text/javascript">
var ans1 = "home";
function aa(){
$.post("ajax.php", { "answers": "test" }, function(data){
alert("Posted");
}, "html");
};
</script>
<a href="#" id="q1" onClick="javascript:aa();" >click</a>
这是我想查看我的数据是否发布的地方。
<?php
session_start();
$te = $_POST['ans'];
$_SESSION['demo'] = $te;
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>
当我单击锚标记时,将显示警报框。 但是当我刷新 Ajax.php 页面时。 它显示一个错误。注意:未定义的索引:ajax 中的 ans.php在第 3 行
并且会话的打印也是空的。
Array(
[demo] =>
)
但是当我刷新 Ajax.php 页面时。 它显示一个错误
听起来您想在发布值时设置会话变量,否则获取会话变量:
<?php
session_start();
if (isset($_POST['ans'])) {
$te = $_POST['ans'];
$_SESSION['demo'] = $te;
}
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>
$.post
和$.get
只是更结构化$.ajax()
的简写版本,所以我更喜欢使用后者。额外的结构让我直截了当。
由于您无论如何都在使用 jQuery,我将像这样重新构建您的代码:
$('#q1').click(function() {
var test = "Hello there";
$.ajax(function() {
type: "POST",
url: 'ajax.php',
data: 'ans=' +test+ '&anothervarname=' + anothervarvalue,
success: function(recd_data) {
alert('Rec'd from PHP: ' + recd_data );
}
});
});
请注意,data:
行用于示例目的,与您的代码不匹配 - 只是向您展示如何将变量传递给 PHP 端。
当然,上述内容包括从锚标签HTML中删除内联javascript(从来都不是一个好主意),因此:
<a href="#" id="q1" >click</a>
此外,在 PHP 方面,您可以通过在顶部添加测试来验证事情是否正常工作。 与示例 AJAX 代码中的data:
行匹配,它如下所示:
阿贾克斯.php
<?php
$a = $_POST['ans'];
$b = $_POST['anothervarname'];
$response = '<h1>Received at PHP side:</h1>';
$response .= 'Variable [ans] has value: ' . $a . '<br>';
$response .= 'Variable [anothervarname] has value: ' . $b . '<br>';
echo $response;
要点: 请注意,使用 echo
而不是 return
将值发送回 AJAX 脚本。
另请注意,您必须仅在 AJAX success:
函数中处理从 PHP 返回的内容。 如果您需要在 success:
函数之外访问该数据,则可以将数据粘贴到隐藏的 <input type="hidden" id="myHiddenInput">
元素中,如下所示:
success: function(recd_data) {
$('#myHiddenInput').html(recd_data);
}
下面是一些简单 AJAX 构造的其他示例:
一个简单的例子
更复杂的示例
根据下拉列表 1 中的选择填充下拉列表 2
相关文章:
- JQGrid使用服务器编辑后的更新数据刷新数据
- 如何将输入数据(许多数据)添加到同一页面的下表中
- 如何用使用剔除数据和“数据”两者计算的数据来过滤数据;外部“;数据
- 将计算的列值绑定到数据表数据模型
- 如何在单击事件中追加数据来自数据表
- 插入数据并用新数据刷新数据网格后,关闭弹出窗口
- 来自数组的数据表数据
- 从铁路由器访问模板中的数据上下文数据时出现问题
- flot 图未显示数据,数据未完全加载
- 在 Backbone js 中永久引用来自另一个数据的数据
- 使用 Knockoutjs 的数据表数据绑定
- AngularJS服务,从$html.get返回预加载的数据或数据
- 如何将表单输入数据从数据列表传递到我的角度控制器
- 是否有从服务器(如 postgres)中提取数据的数据可视化库
- 任何人都可以帮助我下载Excel和PDF中的Jquery数据表数据
- 从上传的 csv 数据创建数据表列定义
- 数据在数据表的初始化中消失
- Ajax数据响应数据未发出警报
- colorbox:发送带有post数据的数据属性
- 将数据表数据导出到ajaxSource