jQuery调用ajax没有响应,没有错误

时间:2016-06-04 06:27:00

标签: javascript php jquery ajax forms

我从SQL生成的礼品清单有一个小问题。我的目标是将每一行作为带有文本框和按钮的表单进行回显,然后在单击任何按钮时,将文本框值和id号(隐藏字段值)传递给函数。然后这个函数将获取值,并使用AJAX get方法将它们发送到php,这将使用SQL数据库中的给予者名称更新行。我在代码中找不到错误,所以请在这方面帮助我。

编辑:我也需要弄明白,如何识别点击的按钮。

这将是我的剧本:

<script type="text/javascript">
        var aname = '';
        var tid = 0;
        $('.giftok').click(function()
        {
            if ($('.aname').val() === '')
            {
                alert('You have not provided your name.');
            }
            else
            {
                aname = $('.aname').val();
                tid = $('.id').val();

                $.ajax
                ({
                url: "kosarba.php",
                data: { ganame: aname, tid: gtid },
                type: "GET",
                context: document.body
                }).done(function() {
                    alert("OK, it works.");
                });

                alert('Thank you!');
            }
        });
    </script>

这是我的HTML + PHP:

echo "<table id='giftlist' align='center' font-size='10pt'>";
while($sor=mysql_fetch_array($sordb))
    {
        echo "<tr>
                <td width='420px'>$sor[gname]</td>
                <td width='65px'>$sor[gprice] Ft</td>";
        if (strlen($sor[aname]) !== 0)
            {
                echo "<td width='200px'>Sorry, someone already bought this one for us.</td>";
            }
        else
            {
                echo "<td width='335px'><form id='rendelget'>Your name: <input type='textbox' id='aname' name='aname' value='$aname'/><input type='hidden' class='id' name='id' value='$sor[id]'/>&nbsp;<button type='button' id='$sor[id]' class='giftok' value='Megveszem'>Megveszem</button></form> </td>";
            }
        echo "</tr>";
    }
echo "</table>";

2 个答案:

答案 0 :(得分:1)

  

您误认为variabletid = $('.id').val() tid   应为gtid

我认为这将是你的剧本

$(document).ready(function(){
    var aname = '';
    var tid = 0;
    $('.giftok').click(function()
    {
        if($(this).closest('form').attr('name') == 'myId'){ //or id
            if ($('.aname').val() === '')
            {
                alert('You have not provided your name.');
            }
            else
            {
                aname = $('.aname').val();
                gtid = $('.id').val();

                $.ajax
                ({
                    url: "kosarba.php",
                    data: { ganame: aname, tid: gtid },
                    type: "GET",
                    context: document.body
                })
                .error(function(){
                    alert('Ajax worked but error form server.');
                })
                .done(function() {
                    alert("OK, it works.");
                });

               alert('Thank you!');
            }
        }
    });
})

//更新:如果您确定按住该按钮的表单,则为表单添加名称或ID

答案 1 :(得分:1)

在ajax调用中, 数据:{ganame:aname,tid:gtid}

&#39; TID&#39;是post参数,而gtid是javascript变量。 错误地,您使用了 gtid 而不是tid。

使用: 数据:{ganame:aname,tid:tid}