通过PHP访问发布的Javascript变量

时间:2018-10-17 16:58:24

标签: javascript php jquery json

我意识到已经提出了几个类似的问题,但是没有一个问题能使我脱颖而出。也许我不能做的事?

我有一个页面,上面有一个订购单。管理员可以通过在下拉菜单中选择用户来为数据库中的任何用户创建订单,然后填写表格。但是每个用户可能有一个PriceLevel,可以给他们折扣。因此,我需要能够基于下拉菜单中选择的用户名进行数据库调用并显示其价格水平,并能够在PHP中使用用户名和pricelevel变量。

我有一个表单所在的add_order.php页面,以及一个进行快速DB调用并以json格式返回结果的ajax.php。

我遇到的问题实际上是从jQuery获取信息到PHP。我尝试使用isset方法,但始终会返回false。

这就是我所拥有的:

add_order.php

<?php
// $username = $_POST['orderUser']['Username'];
$username = isset($_POST['orderUser']) ? $_POST['orderUser']['Username'] : 'not here';
echo 'hello, ' . $username; 
?>

...

$('#frm_Username').change(function() {
    orderUser = $(this).val();

    $.post('/admin/orders/ajax.php', {
            action: 'fetchUser', 
            orderUser: orderUser
        }
    ).success(function(data) {
        if(data == 'error') {
            alert('error');
        } else {
            console.log(data);
        }
    })
})

ajax.php

<?php
$action = $_POST['action'];
if($action == "fetchUser"):
    $un = $_POST['orderUser'];

    /*if($un):
        echo $un;
        exit;
    endif;*/
    // SET THE REST UP WITH MYSQL
    if($un):
        $qid = $DB->query("SELECT u.Username, u.PriceLevel FROM users as u WHERE u.Username = '" . $un . "'");
        $row = $DB->fetchObject($qid);
        // $row = jason_decode($row);
        echo json_encode($row);
        exit;
    endif;
    echo "error";
endif;
?>

我现在正在登录控制台并得到以下信息:

{"Username":"dev2","PriceLevel":"Tier 2"}

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

调用$.post('/admin/orders/ajax.php', ...)后,看到您的POSTed变量的PHP代码为 ajax.php

您需要在ajax.php内检入,而目前isset的检入是add_order.php,看不到您发送的POST请求。

ajax.php中似乎确实有一些逻辑,但是在add_order.php中拥有的一切都不会看到有问题的数据。

相关问题