2 回答

TA貢獻1780條經驗 獲得超1個贊
首先,對于第三個代碼片段,$('#t1')由于在文檔準備好時未呈現表格,因此不可用。該表是在 AJAX 請求響應之后插入的。如果要初始化某些內容,請在 AJAX 請求success回調中進行。
對于提交選中的行,建議使用屬性選擇器。
html輸出:
$output .= '
<tr>
<th scope="row">'.$tableRowCounter.'</th>
<td>'. $db->getArticleString($row2["idArticle"]) ." - " . $row2["idArticle"]. '</td>
<td>'. $row2["duration"] .'</td>
<td>'. $row["newDuration"] .'</td>
<td><input type="checkbox" data-id="'. $row['id'] .'" name="name" value="value"></td>
</tr>';
然后按鈕處理程序:
$("#submit").onclick(function() {
var selectedIds = []
$("table input[type=checkbox]").forEach(function(i, elem) {
var cb = $(elem)
if (cb.prop('checked')) {
selectedIds.push(cb.attr('data-id'))
}
// send selectedIds to server
})
})

TA貢獻1795條經驗 獲得超7個贊
我無法完全將您的解決方案應用于我的問題。但是,我看到了它是如何制作的,并在我對 JavaScript 的理解水平上再次編寫了它。
我知道不應該這樣做,但我沒有看到任何原因為什么我會遇到沒有唯一 ID 的問題
我已經給了我的 tds ID。像這樣:
<tr>
<th scope="row">'.$tableRowCounter.'</th>
<td>'. $db->getArticleString($row2["idArticle"]) .'</td>
<td id="article">'. $row2["idArticle"] .'</td>
<td id="duration">'. $row2["duration"] .'</td>
<td id="newDuration">'. $row["newDuration"] .'</td>
<td>'. $db->getName($row["Person_idPerson"]) . " ".$db->getLastName($row["Person_idPerson"]) .'</td>
<td id="check"><input type="checkbox" id="check" name="name" value="value"></td>
</tr>
然后我可以輕松地遍歷 tds 并將值推送到數組中:
var article = [];
var duration = [];
var newDuration = [];
var check = [];
$("td[id='article']").each(function(){
article.push($(this).text());
})
$("td[id='duration']").each(function(){
duration.push($(this).text());
})
$("td[id='newDuration']").each(function(){
newDuration.push($(this).text());
})
$("input[id='check']").each(function(){
if ($(this).is(':checked')){
check.push(1);
}else{
check.push(0);
}
})
并使用 Ajax 發布數組
$.ajax({
type:'POST',
url:'storeData.php',
data: { article: article,
duration: duration,
newDuration: newDuration,
check: check
},
success:function(data){
//alert(data)
},
});
在 storeData.php 中,我可以使用這些數組并做任何我想做的事
$article = $_POST['article'];
$duration = $_POST['duration'];
$newDuration = $_POST['newDuration'];
$check = $_POST['check'];
print_r($article);
print_r($duration);
print_r($newDuration);
print_r($check);
- 2 回答
- 0 關注
- 178 瀏覽
添加回答
舉報