這是我的目標:有一個數據表與編輯/刪除按鈕。編輯按鈕打開一個模式對話框,其中預先填寫了相應行的詳細信息。我很難讓ajax工作來實際填寫表格,所以我只是在模態內打開編輯頁面並傳遞id。它對於第一個編輯按鈕非常有用。隨後的編輯按鈕什麼都不會發生。我很茫然。我不是javascript或jquery專家,但已經Google搜索,並沒有找到任何處理我的情況(或我可以成功適應)。我很確定它涉及.each和/或.sibilngs,但我不知道如何實現。這裏是所有的代碼,因爲它的立場,除了風格和一些PHP用於驗證用戶:jQuery的模式對話框與表格行的編輯/刪除
<link type="text/css" href="js/css/start/jquery-ui-1.8.9.custom.css" rel="stylesheet" />
<!--<script type="text/javascript" src="js/js/jquery-1.4.4.min.js"></script>-->
<script type="text/javascript" src="js/jquery-1.5.1rc1.js"></script>
<script type="text/javascript" src="js/js/jquery-ui-1.8.9.custom.min.js"></script>
<script type="text/javascript">
//table highlights & such
$(document).ready(function() {
$(".striped tr").mouseover(function() {
$(this).addClass("highlight");
});
$(".striped tr").mouseout(function() {
$(this).removeClass("highlight");
});
$(".striped tr").toggle(function() {
$(this).addClass("selected");
}, function() {
$(this).removeClass("selected");
});
$(".striped tr:nth-child(odd)").addClass("odd");
});
$(function(){
$('#edit_number').dialog({ autoOpen: false,width: 400,height: 500, modal:true, open: function() {
var editqs = 'process.php?action=edit_num_form&id=' + $(this).data('num_id') + '&rep_id=<?php echo $rep_id ?>';
$("#edit_number").load(editqs);
}
});
$('.edit_number_link').live('click', function() {
var id = $(this).closest('tr').data('id');
$("#edit_number").data('num_id', id).dialog('open');
return false;
});
});
</script>
</head>
<body>
<table style="border: 1px solid #000;" border=1 cellpadding=0 cellspacing=0 class="striped">
<thead>
<tr style="background-color: #ccc;">
<th align=left width=100>Name</th>
<th align=left width=100>External</th>
<th align=left width=100>Internal</th>
<th align=left width=50>Options</th>
<th align=left width=50>Hours</th>
<th align=left width=150>Notes</th>
<th colspan=2> </th>
</tr>
</thead>
<?php
//db connection stuff
while($row = mysql_fetch_array($result))
{
$name = $row['name'];
$external = $row['external'];
$internal = $row['internal'];
if ($internal == "")
$internal = " ";
$options = $row['options'];
if ($options == "")
$options = " ";
$hours = $row['hours'];
if ($hours == "")
$hours = " ";
$comments = $row['comments'];
if ($comments == "")
$comments = " ";
$id = $row['id'];
echo "<tr data-id=".$id."><td>" . $name . "</td>";
echo "<td>" . build_link($external,$rep_id, "ext", $userfound) . "</td>";
echo "<td>" . $internal . "</td>";
echo "<td>" . $options . "</td>";
echo "<td>" . $hours . "</td>";
echo "<td>" . $comments . "</td>";
//echo "<td><a href='process.php?action=edit_num_form&id=" . $id . "&rep_id=".$rep_id."' title='Edit'><img src='edit.png' alt='Edit' border='0'></a></td>";
echo "<td><a href='#' title='Edit' class='edit_number_link'><img src='edit.png' alt='Edit' border='0'></a></td>";
echo "<td><a href='process.php?action=delete_num&id=" . $id . "&rep_id=".$rep_id."' title='Delete'><img src='delete.png' alt='Delete' border='0'></a></td>";
//echo "<td><a href='?action=delete' class='delete'>Delete</a></td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
<div id="edit_number" title="Edit Number">
</div>
</body>
</html>
因此理想情況下,我可以檢索每個編輯按鈕,我的數據加載形式在真實模式(不包括外部頁面),但至少需要額外的實例才能工作。
任何幫助,將不勝感激。謝謝!
頁面上有腳本錯誤嗎? – 2011-03-01 16:53:37
我希望。這至少會給我一個方向去尋找。但不,沒有腳本錯誤。 – jayhawkjoe 2011-03-01 17:13:47