【问题标题】:send jQuery generated table to another php page将 jQuery 生成的表发送到另一个 php 页面
【发布时间】:2018-01-11 15:14:25
【问题描述】:

在我的项目(某种在线游戏商店)中,我通过点击原始表格行获得了一个 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 传递给 table 但什么都没有。它没有显示错误,但没有传递任何数据。

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

编辑

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

<?php 

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

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

?> 

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

【问题讨论】:

  • 您可能需要添加 .html()。否则,您将尝试发送一个 jQuery 对象。 var table= $('#generated_table').html();
  • 感谢您的回答!但是,在更正该错误后,同样的问题
  • 要寻找的东西; 1. AJAX 提交是否失败? 2.你的PHP页面数据有问题吗?我真的帮不上什么忙了。但是您应该看到正在发送和接收的内容。如果您使用 Chrome,请参阅:superuser.com/questions/614599/network-monitor-for-webdeveloper 希望这会有所帮助。
  • 感谢 Kalaikumar Thangasamy,ajax 工作正常并按预期发送数据。但问题出在 $_POST['data'] 没有值的其他 php 页面上。 php代码发布在编辑中,我使用firefox。

标签: javascript php jquery ajax


【解决方案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);
            }    
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 2013-01-24
    • 2014-06-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多