我有两个表格和一个表格中的输入,或多或少是这样的:
表格代码(两个表是相同的,除了它调用的表格略有不同):
<table cellpadding="0" cellspacing="0" class="paperTable searchResultContainer">
<thead>
<tr>
<th>Name</th>
<th>ID</th>
<th>Company Reg.</th>
<th>Postcode</th>
</tr>
</thead>
<tbody>
<?php while ($row = $items->fetch_assoc()) : ?>
<tr class="row" data-address1="<?php echo $row['address1']; ?>"
data-address2="<?php echo $row['address2']; ?>" data-address3="<?php echo $row['address3']; ?>"
data-county="<?php echo $row['address4']; ?>" data-postcode="<?php echo $row['postcode']; ?>"
>
<td><?php echo (strlen($row['name']) > 0 ? $row['name'] : '-'); ?></td>
<td><?php echo (strlen($row['id']) > 0 ? $row['id'] : '-'); ?></td>
<td><?php echo (strlen($row['company_reg_no']) > 0 ? $row['company_reg_no'] : '-'); ?></td>
<td><?php echo (strlen($row['postcode']) > 0 ? $row['postcode'] : '-'); ?></td>
</tr>
<?php endwhile; ?>
</tbody>
</table>
我的输入是一个简单的单行复选框,询问上述内容是否与搜索匹配..
我正在尝试做什么,如果用户点击表格行,它会将<tr>
标记的.data()属性发布到表单中的下一步,这是另一页。
我已经尝试了隐藏的输入想法,但因为它在输入共享相同名称的while循环中,所以输入的值将是循环中的最后一个,因为它是最后一次设置。我也试过ajax:
$.ajax({
data: $(this).data(),
type: 'post',
url: 'stepDos.php',
success: function(data)
{
window.location.replace('/path/to/stepDos.php');
}
});
当我var_dumped $ _POST它返回空时无法正常工作。
我也试过了$ .post函数:
$.post('/path/to/stepDos.php', {data: data}, function(ev)
{
window.location.replace('/path/to/stepDos.php');
});
再次无济于事 - 我错过了什么?
由于
答案 0 :(得分:1)
正如我在评论中所提到的,你不必制作一个包含其中所有数据的单个表格。相反,你可以在循环中每行获得1个表单。
这将为您提供预期的结果!
答案 1 :(得分:0)
您正在做的是在后台将数据发布到页面(在这种情况下是jQuery的用途),然后重定向,之后没有发布数据(&#39) ; s window.location.replace(...)是什么)。我建议的只是创建一个表单并提交,这样您的浏览器就会复制所有的帖子字段并继续保持原样。
答案 2 :(得分:0)
您可以通过调用.data()函数来检索数据属性,请参阅以下代码段:
$(".row").click(function(){
console.log($(this).data());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table cellpadding="0" cellspacing="0" class="paperTable searchResultContainer">
<thead>
<tr>
<th>Name</th>
<th>ID</th>
<th>Company Reg.</th>
<th>Postcode</th>
</tr>
</thead>
<tbody>
<tr class="row" data-address1="addr11" data-address2="addr12" data-address3="addr13">
<td>Nome 1</td>
<td>ID 1</td>
<td>Company 1</td>
<td>26027</td>
</tr>
<tr class="row" data-address1="addr21" data-address2="addr22" data-address3="addr23">
<td>Nome 2</td>
<td>ID 2</td>
<td>Company 2</td>
<td>26900</td>
</tr>
<tr class="row" data-address1="addr31" data-address2="addr32" data-address3="addr33">
<td>Nome 3</td>
<td>ID 3</td>
<td>Company 3</td>
<td>20151</td>
</tr>
</tbody>
</table>
答案 3 :(得分:0)
您可以尝试使用隐藏输入,其属性名称与数组格式如下,行[&#39; id&#39;]作为键索引。
<input type="hidden" name="data[<?php echo $row['id'] ?>]['id']" value="<?php echo $row['id'] ?>">
<input type="hidden" name="data[<?php echo $row['id'] ?>]['name']" value="<?php echo $row['name'] ?>">
<input type="hidden" name="data[<?php echo $row['id'] ?>]['company_reg_no']" value="<?php echo $row['company_reg_no'] ?>">
<input type="hidden" name="data[<?php echo $row['id'] ?>]['postcode']" value="<?php echo $row['postcode'] ?>">