提交单独的HTML表单时出现问题

时间:2014-06-22 22:00:22

标签: html forms

因此,我在创建用于使用按钮发送预定消息的网页的UI时遇到问题。每个按钮都是它自己的形式,其想法是按下提交按钮以发送唯一的消息。

我现在遇到的问题是我的PHP后端要求form id属性引用存储在数据库中的邮件收件人,以便知道将邮件发送给谁,所以我不能使用form id来区分表单,否则后端将失败并且不会发送消息。现在无论按哪个按钮,它都会提交第一个表格。有没有办法让单独的submit按钮在不使用form id的情况下提交指定的表单?

以下是我的代码示例,其中显示了问题:

<td>
<form id="<?php echo $row[" id "] ?>" name="hello" method="post" onsubmit="return sendPushNotification('<?php echo $row[" id "] ?>')">
    <input type="hidden" name="message" value="hello" />
    <input type="hidden" name="regId" value="<?php echo $row[" gcm_regid "] ?>"/>
    <input type="submit" class="send_btn" value="Send Hello" />
</form>
</td>
</tr>
<tr>
<td>
    <form id="<?php echo $row[" id "] ?>" name="Goodbye" method="post" onsubmit="return sendPushNotification('<?php echo $row[" id "] ?>')">
        <input type="hidden" name="message" value="Goodbye!" />
        <input type="hidden" name="regId" value="<?php echo $row[" gcm_regid "] ?>"/>
        <input type="submit" class="send_btn" value="Send Goodbye" />
    </form>
</td>

在这种情况下,两个按钮都会发送&#34;你好&#34;消息,因为它是第一个。任何帮助将不胜感激!

编辑:

以下是sendPushNotification的javascript,如果有帮助的话

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){

        });
        function sendPushNotification(id){
            var data = $('form#'+id).serialize();
            $('form#'+id).unbind('submit');                
            $.ajax({
                url: "send_message.php",
                type: 'GET',
                data: data,
                beforeSend: function() {

                },
                success: function(data, textStatus, xhr) {
                      $('.txt_message').val("");
                },
                error: function(xhr, textStatus, errorThrown) {

                }
            });
            return false;
        }
    </script>

1 个答案:

答案 0 :(得分:0)

尝试DEMO

HTML

onsubmit="return sendPushNotification(this);"

JS

function sendPushNotification(formObj){
    var data = $(formObj).serialize();
            ...