$ .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