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 に答える