Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在html输入标记中显示php会话的值_Javascript_Php_Ajax_Session - Fatal编程技术网

使用javascript在html输入标记中显示php会话的值

使用javascript在html输入标记中显示php会话的值,javascript,php,ajax,session,Javascript,Php,Ajax,Session,我在一个网站上工作,我不明白为什么我不能在html页面的输入标记中显示php会话的值 这是我的javascript代码: var qty = $.ajax({ url: 'winkelwagen.php', data: {add: id, volume: "magnum"}, type: 'get' }); $['input[name="item-qty-' + id + '"]'].val = toString(qty); 以及它所指的php函数: if(isset

我在一个网站上工作,我不明白为什么我不能在html页面的输入标记中显示php会话的值

这是我的javascript代码:

var qty = $.ajax({
    url: 'winkelwagen.php',
    data: {add: id, volume: "magnum"},
    type: 'get'
});

$['input[name="item-qty-' + id + '"]'].val = toString(qty);
以及它所指的php函数:

if(isset($_GET['add'])) {

    $query = query("SELECT * FROM products WHERE id = " . $_GET['add'] . " ");
    validate($query);

    while($row = mysqli_fetch_assoc($query)) { 

        if(isset($_GET['volume'])) {
            if($_GET['volume'] == "magnum") {
                if($row['category'] == 'Champagne') {
                    $_SESSION['product_' . $_GET['add'] . '_magnum'] += 1;
                } else {
                    $_SESSION['product_' . $_GET['add'] . '_magnum'] += 6;
                }
                return $_SESSION['product_' . $_GET['add'] . '_magnum'];
            } else {
                if($row['category'] == 'Champagne') {
                    $_SESSION['product_' . $_GET['add']] += 1;
                } else {
                    $_SESSION['product_' . $_GET['add']] += 6;
                }
                return $_SESSION['product_' . $_GET['add']];
            }
        }

    }

}
这是html代码:

<button class="cart-btn-remove" onclick="manageProducts('remove',0,{$id})"><ion-icon name="remove"></ion-icon></button>
<input type="text" name="item-qty-{$id}" value="{$amount}">
<button class="cart-btn-add" onclick="manageProducts('add',0,{$id})"><ion-icon name="add"></ion-icon></button>

(这来自一个php循环,用于打印购物车中的项目)


我希望你能帮助我。

你把括号合上了吗

数据:{添加:id,卷:

哦,你可能应该避开这些变量,这样人们就不会 php?添加=;删除数据库产品


噢,还有@Barmar说的…

$。ajax
不会返回服务器响应。它是异步的,您需要使用回调函数来处理响应

$.ajax({
    url: "winkelwagen.php",
    data: { add: id, volume: "magnum" },
    type: "get",
    success: function(qty) {
        $('input[name="item-qty-' + id + '"]').val(qty);
    }
});

ajax
不会自动在
qty
变量中存储/返回响应,而是必须附加一个
回调来处理它。
您必须这样做才能获得所需的输出:

$.ajax({
url:'winkelwagen.php',
数据:{
地址:id,
卷:“万能”,
键入:“获取”
}).完成(功能(数量){
$['input[name=“item qty-”+id+“]']].val(JSON.stringify(qty));
}).fail(函数(){
警报(“错误”);

});
您缺少Javascript中的
数据:
行的其余部分。我认为您还需要使用
.val(toString(qty))
而不是在jQuery中分配给它。在这种情况下,我仍然收到这样一条消息,jQuery无法读取undefined的属性“val”。很抱歉,我复制了您对
.val
的使用,并没有注意到您的语法完全错误,我专注于AJAX调用。我已经更正了它。tnx我现在知道它确实是错误的,所以我更改了它。N现在我在输入中得到一个新的值,但我得到的是整个html代码作为值,而不是新的数字。这听起来像是winkelwagen.php的问题,它只是回显html代码,而不仅仅是会话变量的值。是的,这是正确的,但我无法找出问题似乎是什么,因为如果直接从php回显值,则会得到correct value由于sql给出语法错误,DROP数据库无法工作