0
對PHP很滿意,但是與jQuery打交道。 我有一個引導模式,用於編輯項目,我使用AJAX填充單擊編輯按鈕時的字段。這個偉大的工程,但一個項目可以在多個部門(在模式複選框)將PHP中的多個重複鍵值返回給json AJAX響應
這是我如何填充模式:
$.ajax({
url: 'project_tasks.php?task=select_project&pjct_id=' + id,
method: 'GET',
dataType: 'json'
}).success(function(response) {
// Populate the form fields with the data returned from server
$('#edit_project')
.find('[name="project_id"]').val(response.project_id).end()
.find('[name="project_title"]').val(response.project_title).end()
.find('[name="project_bgcolor"]').val(response.project_bgcolor).end()
.find('[name="project_desc"]').val(response.project_desc).end()
.find(':checkbox[name^="department"]').each(function() {
if($(this).val() == response.dpmt_id) {
console.log("depart: " + response.dpmt_id);
$(this).prop('checked', true);
}
});
});
而且PHP的(不逃逸,但仍然會做) :
$pjct_id = $_GET['pjct_id'];
$pjct = Projects::find_by_id($pjct_id);
$dpmts = Projects_departments::find_all_by_pjct_id($pjct_id);
foreach ($dpmts as $dpmt) {
$response_array['dpmt'] = $dpmt->department_id;
}
$response_array['project_id'] .= $pjct->id;
$response_array['project_title'] .= $pjct->project_title;
$response_array['project_bgcolor'] .= $pjct->project_bgcolor;
$response_array['project_desc'] .= $pjct->project_desc;
echo json_encode($response_array);
很明顯,我知道「DPMT」每次都被覆蓋,所以我只得到了JSON dpmt : 1
,而不是每個部門ID,但我想通過實現類似dpmt: 1, dpmt: 2, dpmt: 3
,然後循環到勾選複選框。
希望我已經很好地解釋了我自己(妻子衝我出來) 在此先感謝。
完美,謝謝!我確實需要改變find(':checkbox [name =「department」來查找(':checkbox [name =「department []」) –
非常感謝您的反饋,在答案中更改了它,以便更清楚地向任何人其他。 –