在我的项目(某种在线游戏商店)中,我有点击原始表行的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。
答案 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);
}
});