$ .post没有发布数据
嗨这是我的page.php代码
var ans1 = "home"; function aa(){ $.post("ajax.php", { "ans": "test" }, function(data){ alert("Posted"); }, "html"); }; click
这就是我想看看我的数据是否发布的地方。
<?php session_start(); $te = $_POST['ans']; $_SESSION['demo'] = $te; echo "
".print_r($_SESSION,'/n').""; ?>
当我点击锚标签。 警告框显示。 但是当我刷新ajax.php页面时。 它显示错误。通知:未定义索引:ans in
C:\xampp\htdocs\healthqueens\hello\ajax.php on line 3
会话的打印也是空的。
Array ( [demo] => )
如果有人能告诉我错误的话。但是当我刷新ajax.php页面时。 它显示错误
听起来你想在发布值时设置会话变量,否则获取会话变量:
".print_r($_SESSION,'/n')."
"; ?>
$.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 – 从来不是一个好主意 – 因此:
click
此外,在PHP方面,您可以通过在顶部添加测试来validation事情是否正常。 与
data:
匹配data:
示例AJAX代码中的行,它看起来像这样:ajax.php
Received at PHP side:'; $response .= 'Variable [ans] has value: ' . $a . '
'; $response .= 'Variable [anothervarname] has value: ' . $b . '
'; echo $response;重要提示:请注意使用
echo
而不是return
来将值发送回AJAX脚本。另请注意,您必须处理在AJAX
success:
从PHP返回的内容success:
仅限函数 。 如果您需要访问success:
function之外的数据,那么您可以将数据粘贴到隐藏的元素中,如下所示:
success: function(recd_data) { $('#myHiddenInput').html(recd_data); }
以下是一些简单的AJAX构造的其他示例:
一个简单的例子
更复杂的例子
根据下拉列表1中的选择填充下拉列表2