将jQuery生成的表发送到另一个php页面

时间:2018-01-11 15:14:26

标签: javascript php jquery ajax

在我的项目(某种在线游戏商店)中,我有点击原始表行的jQuery生成表。原始表是从mysql数据库填充的。在提交时,我需要将生成的表发送到另一个php页面。我对它很新,到目前为止这是我的代码:

在php_first.php上

生成表

  <form  action="php_second.php" id ="form_send" name ="form_send1" method="POST">
<div>
    <table id="generated_table" style="display:none" name ="generated_table1">
        <tr><th>Game</th><th>Platform</th> <th>Genre</th> <th>Price</th><tr>

                   // generated rows here

        </table>
        <input type="submit" value="Confirm"  id="btnOrder" style="display:none"></input>
</div>
</form>

生成的行

$(document).ready(function(){
    $('#original_table tbody tr').click(function(){

        var data = $(this).children("td").map(function(){
            return $(this).text();
        }).get();


        var row= '<tr name ="new_row"><td name = "game">' + data[0] + '</td><td name = "platform">' + data[1] + 
                 '</td><td name = "genre">' + data[2] + '</td><td name = "price">' + data[3] + 
                 '<button type="button" onclick="remove(this)" class ="btn_remove">Remove</button>' +'</td></tr>';


         $("#generated_table tbody").append(row);
         $('#generated_table').show();
         $('#btnConfirm').show();


});

ajax发布到php_second.php

$('#btnOrder').click(function(){

    var table= $('#generated_table');

        $.ajax({
            url: 'php_second.php',
            type: 'POST',
            data: {data: table},
            async: false, 
            success: function(data){

                alert(data);
            }    
        });

但是,ajax不会做警报(数据)所以我认为这是问题,但我无法确定它。

和php_second.php

<table id="table_order" name = "table_order1" style="display:show">

<?php
if(isset($_POST['generated_table'])){               
        $table= $_POST['generated_table'];

        echo $table;    

    }
?>  
</table>

问题是我无法将表数据发布到另一个php(并在重定向时在其他php上打印该表)。试图使用ajax在行单击时发送行数据,或者传递div而不是表。它没有显示任何错误,但没有传递数据。

这是我的第一个问题,因此我可能错过了一些细节以使问题更加清晰。谢谢!

修改

我已经尝试了Kalaikumar Thangasamy的代码,ajax现在工作正常,但问题出在其他php页面上。

<?php 

        if(isset($_POST['data'])){

            $table = $_POST['data'];
            echo $table;
        }
        else {
            echo "None selected";                       
        }

?> 

$ _POST ['data']或来自第一个php的任何其他参数始终为null。

1 个答案:

答案 0 :(得分:1)

data: {data: table}更改为data: {'generated_table': escape(table)}。将数据发布为$_POST['generated_table']中的帖子数据。您希望使用$_POST['data']。试试这个

var table= $('#generated_table').html();

        $.ajax({
            url: 'php_second.php',
            type: 'POST',
            data: {'generated_table': escape(table)},
            async: false, 
            success: function(data){

                alert(data);
            }    
        });