首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax表单响应ajax调用

Ajax表单响应ajax调用
EN

Stack Overflow用户
提问于 2013-09-21 14:05:06
回答 1查看 412关注 0票数 0

我有个问题:

我对数据库进行ajax查询,并显示有关特定ID的信息,并以HTML格式的消息返回方式显示它。

这里是HTML代码:

代码语言:javascript
复制
<!-- WINE -->
<div id="slides">
    <div id="information_slide" class="slide">
        <!-- container as a result of JS -->
    </div>
</div>
<!-- WINE -->

<!-- LOADING -->
<div id="loading_slide" class="slide" style="display: none;">
    Loading information about the wine ...<br/><br/><img src="images/ajax-loader.gif" />
</div>
<!-- LOADING -->

<!-- AJAX CALL BUTTON -->
<?php
    echo '<div id="'.$id['id'].'" class="menuItem">Show wine when ID = '.$id['id'].'</div>';
?>
<!-- AJAX CALL BUTTON -->

这里是JS代码:

JavaScript

代码语言:javascript
复制
$('.menuItem').on('click', function() {

    // ID Wine
    var id = $(this).attr('id');

    $.ajax({
        url: 'function.php',
        beforeSend: function () {
            $('#slides #information_slide').fadeOut(200, function() {
                $('#slides #loading_slide').fadeIn(200);
            });
        },
        data: {
            funkcja: 'show_wine',
            id: id
            },
        type: 'post',
        success: function(result) {
            setTimeout(function() {
                $('#slides #loading_slide').fadeOut(200, function() {
                    $('#slides #information_slide').html(result).fadeIn(400);
                });
            }, 500);
        }
    });
    // alert(id);
});

/JavaScript

这里是PHP代码:

php

代码语言:javascript
复制
<?php

    if(isset($_POST['funkcja']) && !empty($_POST['funkcja'])) {
        switch($_POST['funkcja']) {
            case 'show_wine':
                show_wine($_POST['id']);
            break;
        }
    }

    // Callback wine function
    function show_wine($id) {

        $qwerty = "SELECT * FROM `wina` WHERE id='".$id."' LIMIT 1";
        $sql = mysql_query($qwerty);

        while($id = mysql_fetch_assoc($sql)) {
            echo '
                <div id="'.$id['id'].'" class="element">
                    <form method="post" action="" class="jcart">
                        <fieldset>
                            <input type="hidden" name="jcartToken" value="'.$_SESSION['jcartToken'].'" />
                            <input type="hidden" name="my-item-id" value="'.$id['id'].'" />
                            <input type="hidden" name="my-item-name" value="'.stripslashes($id['nazwa']).'" />
                            <input type="hidden" name="my-item-price" value="'.stripslashes($cena_przecinek).'" />
                            <input type="hidden" name="my-item-url" value="" />
                            <input type="hidden" name="my-item-qty" value="1" size="3" class="item-sztuk" />

                            <input type="submit" name="my-add-button" value="to cart" class="item-button" />

                        </fieldset>
                    </form>

                    <!-- ... remaining HTML code... -->

                </div>
            ';
        }

    }
?>

/php

如前所述,我有一个结果。脚本向我展示了数据库中的一个特定ID的信息(记录)--脚本的这一部分没有问题。

当PHP回调函数(称为Ajax)承载一个表单时,我遇到的问题也是Ajax函数。这部分HTML代码响应于PHP函数..。

代码语言:javascript
复制
<form method="post" action="" class="jcart">
    <fieldset>
        <input type="hidden" name="jcartToken" value="'.$_SESSION['jcartToken'].'" />
        <input type="hidden" name="my-item-id" value="'.$id['id'].'" />
        <input type="hidden" name="my-item-name" value="'.stripslashes($id['nazwa']).'" />
        <input type="hidden" name="my-item-price" value="'.stripslashes($cena_przecinek).'" />
        <input type="hidden" name="my-item-url" value="" />
        <input type="hidden" name="my-item-qty" value="1" size="3" class="item-sztuk" />

        <input type="submit" name="my-add-button" value="to cart" class="item-button" />

    </fieldset>
</form>

..。是我的jCart脚本的形式。按钮(名称=我的添加按钮)不工作。

JS脚本从一开始就加载到页面上:

html

代码语言:javascript
复制
<head>
    <script type="text/javascript" language="javascript" src="files/jcart.js"></script>
</head>

/html

当我调用一个ajax函数时,将一个结果(html代码)加载到容器中,并使用应该向购物车添加项的按钮,页面将重新加载,并且仅将item添加到cart中。我尝试在PHP脚本中添加返回false;,但是如果碰巧什么也没有。

以下是jcart -> www.starwines.com.pl/jcart/js/jcart.js的JS代码文件

下面是演示页面-> www.starwines.com.pl/test.php

请尝试以下操作: *1)*单击"Dodaj do koszyka“(黄色按钮) 2),从旋转木马中选择不同的葡萄酒,然后单击"Dodaj do koszyka”

如何解决这个问题?

打招呼!

PS。对不起英语,我很虚弱:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-22 01:14:40

将单击事件绑定代码更改为

代码语言:javascript
复制
$('.jcart').submit(function(e) {
    add($(this));
    e.preventDefault();
});

代码语言:javascript
复制
$(document).on('submit', '.jcart', function(e) {
    add($(this));
    e.preventDefault();
});

就能完成任务了。

jQuery打开

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18933523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档