Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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
Php Ajax表单提交失败_Php_Jquery_Ajax_Forms_Smarty - Fatal编程技术网

Php Ajax表单提交失败

Php Ajax表单提交失败,php,jquery,ajax,forms,smarty,Php,Jquery,Ajax,Forms,Smarty,我正在努力通过ajax提交表单 这是代码,但我已经找了大约3个小时,无法找出它为什么不提交表单 有什么想法吗 <script type="application/javascript"> function addForm() { $.ajax({type:'POST', url: 'cart.php?ajax=1&a=add&domain=register', data:$('#add-form').serialize(), success: function

我正在努力通过ajax提交表单

这是代码,但我已经找了大约3个小时,无法找出它为什么不提交表单

有什么想法吗

<script type="application/javascript">
function addForm() {
    $.ajax({type:'POST', url: 'cart.php?ajax=1&a=add&domain=register', data:$('#add-form').serialize(), success: function(response) {
        $('#add-form').find('.form_result').html(response);
    }});

    return false;
}
function transferForm() {
    $.ajax({type:'POST', url: 'cart.php?ajax=1&a=add&domain=transfer', data:$('#transfer-form').serialize(), success: function(response) {
        $('#transfer-form').find('.form_result').html(response);
    }});

    return false;
}
</script>
我的代码与smarty混合使用,但该调用只是一个标准调用:

{foreach from=$availabilityresults key=num item=result}
    {if $result.status eq "available"}
    <form method="post" id="add-form"  onsubmit="return addForm();">
    {else}
    <form method="post" id="transfer-form"  onsubmit="return transferForm();">
    {/if}
    <table width="700" border="0" cellspacing="5" cellpadding="0">
        <input type="hidden" name="domain" value="{$result.domain}" />
        <tr style="border-bottom: #333 1px solid;">
        <td rowspan="2">
            {if $result.status eq "available"}
            <img src="templates/dj/yes.jpg" />
            {else}
            <img src="templates/dj/no.jpg" />
            {/if}
        </td>
            {if $result.status eq "available"}
            <td style="color:#339933;" />
            {$result.domain|replace:$domain:''}
            </td>
            {else}
            <td style="color:#cc0000;" />
            {$result.domain|replace:$domain:''}
            </td>
            {/if}
        <td rowspan="2">{$result.domain}</td>
        <td rowspan="2">
            {if $result.status eq "unavailable"}
            {else}
            <select name="domainsregperiod[{$result.domain}]">
                {foreach key=period item=regoption from=$result.regoptions}
                    <option value="{$period}">
                    {$period} {$LANG.orderyears} @ {$regoption.register}
                    </option>
                {/foreach}
            </select>
            {/if}
        </td>
        <td rowspan="2">
            {if $result.status eq "available"}
            <input type="image" src="templates/dj/add-basket.jpg" border="0" alt="Add to Basket" />
            <div class="form_result"> Added to Basket </div>
            {else}
            <input type="image" src="templates/dj/transfer.jpg" border="0" alt="Transfer to Us" />
            {/if}
        </td>
      </tr>
      <tr>
        <td>
            {if $result.status eq "available"}
            Available
            {else}
            Taken
            {/if}
        </td>
      </tr>
      <tr><td colspan="8" style="height:1px; background-color:#999;"></td></tr>

    </table>
    </form>
{/foreach}
您可以查看“我的页面”的实际操作,购物车是:

尝试以下操作:

function addForm() {
$.ajax({type:'POST', url: 'cart.php?ajax=1&a=add&domain=register', 
       data:{"myForm": $('#add-form').serialize()}, 
       success: function(response) {
       $('#add-form').find('.form_result').html(response);
       }
});

return false;
}

您正在foreach循环中构建所有元素,并为它们分配相同的元素id。这就是为什么我问您如何知道表单正在提交。您确定这是您输入数据的表单吗?你确定这不是另一个具有相同id的表单吗?你怎么知道的?如果您的jQuery选择器选择的内容与您期望的内容不同,该怎么办?

我能够从您的站点选择项目并将其添加到购物车中。在Firebug中监控。从ajax请求cart.php返回“ok 200”响应确实花了很长时间。如果您有任何其他信息,请告诉我

你怎么知道你的表单没有被提交?在提交之前尝试序列化你的表单:@DanO-它正在将表单传递给购物车,但是当我看到购物车时,它仍然是空的…我刚刚尝试了这个,但没有任何改变:谢谢你的建议基本上我的页面以whois脚本运行,然后使用上面的代码显示结果,每个结果要么可用,要么不可用-如果可用,则提供转帐表单,如果可用,则提供购买-但两者都进入购物车。我看不出还有什么其他方法可以编码它-只有一个表单被提交,所以它应该提交这些细节?