0

这是我下面的 page.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", { "ans": "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 页面时。它显示一个错误..注意:未定义的索引:第 3 行 ajax.php 中的 ans

session 的打印也是空的。

Array(
   [demo] => 
)
4

2 回答 2

0

但是当我刷新 ajax.php 页面时。它显示一个错误

听起来您想在发布值时设置会话变量,否则获取会话变量:

<?php
session_start();
if (isset($_POST['ans'])) {
    $te = $_POST['ans'];
    $_SESSION['demo'] = $te;
}
echo "<pre>".print_r($_SESSION,'/n')."</pre>";
?>
于 2013-09-10T16:16:18.663 回答
0

$.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:,它看起来像这样:

ajax.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 脚本。

另请注意,您必须仅在 AJAXsuccess:函数中处理从 PHP 返回的内容。如果您需要在函数之外访问该数据success:,则可以将数据粘贴到隐藏<input type="hidden" id="myHiddenInput">元素中,如下所示:

success: function(recd_data) {
    $('#myHiddenInput').html(recd_data);
}

下面是一些简单的 AJAX 构造的附加示例:

一个简单的例子

更复杂的例子

根据下拉列表 1 中的选择填充下拉列表 2

于 2013-09-10T16:50:12.123 回答