У меня есть функция javascript / jquery, которая должна заменить строку в таблице версией этой же строки в «режиме редактирования».запускается событие onclick кнопки в строке, и упрощенная версия кода будет выглядеть так:
function EditRow(itemID) {
editable_row = getUrl('row.php?action=' + 'edit' + '&itemID=' + itemID );
$('[row_itemID=' + itemID + ']').html(editable_row);
}
(... row_itemID является атрибутом тега TR для строки ... asв [tr row_itemID = "27"])
function getUrl(addr) {
var r = $.ajax({ type: 'GET', url: addr, async: false, dataType: "text" }).responseText; return r;
}
(я также пытался установить "dataType:" в "html" или вообще не указывать)
row.php должен вернутьверсия «Edit Mode» содержимого строки, но по какой-то причине теги TD, похоже, удаляются в процессе, возможно, функция $ .ajax () рассматривает ответ, содержащий TD без недействительных TR.
Источник представления row.php?action=edit&itemID=27
отображает ТД, как и alert(editable_row);
, но alert($('[row_itemID=27]').html());
нет.
Упрощенная версия кода row.php:
<?php
if ($_GET['action'] == 'edit') {
$item = ItemDataAccess::Read($_GET['itemID']);
?>
<td><input type="text" name="itemID" value="<?php echo $item->itemID ?>" /></td>
<td><input type="text" name="name" value="<?php echo $item->name ?>" /></td>
<td><input type="text" name="description" value="<?php echo $item->description ?>" /></td>
<?php
}
?>
Кто-нибудь теперь знает, как заставить его вставить настоящий HTML-ответ в тег TR?