1

我对带有表单提交事件的 ajax 帖子有疑问。我有由 opentable.php 生成的表

这里是 opentable.php 的代码

<?php
session_start();
require("dbc.php");
$memberid = $_SESSION['memberid'];
$sql = "SELECT * FROM `open` WHERE `memberid`='$memberid'";
$mydata = mysql_query($sql);

echo "<table><tr><th>Time</th><th>Type</th><th>Size</th><th>Price</th><th>Profit</th><th></th><th></th></tr>";
while($record = mysql_fetch_array($mydata)){
    echo "<form action = assets/close.php id=closeform>";
    echo "<tr>";
    echo "<td>" . $record['opendate'] . "</td>";
    echo "<td>" . $record['type'] . "</td>";
    echo "<td>" . $record['size'] . "</td>";
    echo "<td>" . $record['openprice'] . "</td>";
    echo "<td>" . $record['profit'] . "</td>";
    echo "<td>"."<input type=hidden name=openid value=".$record['openid']." </td>";
    echo "<td>" . "<input type=submit name=close value=close". " </td>";
    //echo "</tr>";
    echo "</form>";
    }
echo "</table>";


?>

和用于提交事件 trade.js 的 ajax javasript

 $(document).ready(function() {
$('#closeform').submit(function( event ) {
            event.preventDefault();
            var $form = $( this ),
            price = $('#price').val(),
            id = $form.find( "input[name='openid']" ).val(),
            url = $form.attr( "action" );
            var posting = $.post( url, { openid: id, closeprice: price } );
            var r=confirm("Are you sure?");
            if(r =true){
                posting.done(function( data ) {
                    alert(data);
                    });
                }
            else
              {
              alert("Transaction canceled")
              }

        });
}

我对其进行了测试,它像普通的 php 表单一样运行。并且错误没有传递 $_POST 数据。请给我推荐这种活动谢谢。

4

1 回答 1

1

closeform是一个动态添加的形式,尝试使用.on()

$(document).on('submit', '#closeform', function ( event ) {
于 2013-09-18T17:08:10.477 回答