jquery ajax полоски ответа html <td>теги - PullRequest
1 голос
/ 20 июня 2011

У меня есть функция 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?

1 Ответ

0 голосов
/ 20 июня 2011

Вы действительно написали обертку вокруг $.ajax()?Вы скучали по $.get() и .load()?И, дрожь вы используете async: false вместо обратного вызова, почему?

function EditRow(itemID) {
   $('[row_itemID=' + itemID + ']').load('row.php?action=' + 'edit' + '&itemID=' + itemID);
}

Вот и все.

...