[英]passing data to new page $_POST with jquery
我有兩個表和一個或多或少這樣的形式內的輸入:
表代碼(兩個表相同,除了調用的表略有不同):
<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');
});
再次無濟於事-我缺少什么?
謝謝
正如我在評論中提到的那樣,您不必在其中包含所有數據的情況下制作一個單一表單。相反,您可以在循環中每行使用一種表單。
這將為您帶來預期的結果!
您正在做的是在后台將數據發布到頁面中(這就是jQuery在這種情況下的目的),然后僅重定向到那里而沒有發布數據(這就是window.location.replace(...)確實)。 我建議的只是創建一個表單並提交該表單,這樣您的瀏覽器將復制所有發布字段並繼續進行。
您可以通過調用.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>
您可以嘗試使用屬性名稱具有數組格式的隱藏輸入,如下所示,將row ['id']作為鍵索引。
<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'] ?>">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.