2016-08-30 79 views
1

我有一堆的HTML看起來像這樣的 - 只有在這裏展示一個,因爲它是所有的需要:jEditable反應處理問題

<tr> 
<td>Name of Organisation:</td> 
<td class="edtext" id="organisation"><?=$aRes[0]['organisation']?></td> 
</tr> 

在頁面的頭我有這樣的:

$(function() { 
    $(".edtext").editable("./editHandler/WRITE.update.php?uaID=<?=$uaID?>", { 
     event  : 'dblclick', 
     dataType : "json", 
     placeholder : '', 
     indicator : 'Saving...', 
     cssclass : 'editable', 
     submit  : 'Save', 
     cancel  : 'Cancel', 
    }); 
}); 

我可以通過雙擊成功發送東西到數據庫中,然後編輯我給出id =「organization」的td字段,就好了。

在PHP的後端位,與此交易,DB函數工作正常後直接,我有:

header('Content-type: application/json'); 

(剪斷數據庫更新代碼 - 它工作正常)

$report = array(); 
$report['organisation'] = $userInput; 
$report['result'] = "&#10004;"; 
echo json_encode($report); 

相同的PHP有它的標頭設置爲:

因此,一旦已輸入並保存到可編輯表格單元格中的文本輸入到數據庫中,上面發回到前端('你好世界」是例如輸入文本):

{"organisation":"Hello World","result":"&#10004;"} 

那麼什麼顯示在編輯發生在TD手機是這樣的:

{"organisation":"Hello World","result":"✔"} 

這是沒有什麼希望。勾號是&#10004;應該是什麼,但我的意思是我希望顯示「Hello World」部分(當然不包括引號),並且結果以id =「result」的形式顯示在一個span或div中。 ,在頁面的其他地方。

我讀過,我需要使用jEditable callback選項,但我找不到任何如何做到這一點的例子。我對JS不是很有信心,希望有人推動我朝着正確的方向前進。功能實例歡迎。

順便說一句,我需要能夠使用JS的這一點多個文本字段,並沒有一個單獨的JS條目,每個數據單元需要編輯訪問。

 callback : function() { 
      location.reload(); 
     }, 

到:

回答

0

我通過添加固定的問題

$(".edtext").editable("./editHandler/WRITE.update.php?uaID=<?=$uaID?>", { 
     event  : 'dblclick', 
     dataType : "json", 
     placeholder : '', 
     indicator : 'Saving...', 
     cssclass : 'editable', 
     submit  : 'Save', 
     cancel  : 'Cancel', 
    }); 
}); 

部,使得最終的結果是:

$(".edtext").editable("./editHandler/WRITE.<?=$appKey?>.php?uaID=<?=$uaID?>", { 
    callback : function() { 
     location.reload(); 
    }, 
    event  : 'dblclick', 
    placeholder : '', 
    indicator : 'Saving...', 
    cssclass : 'editable', 
    submit  : 'Save', 
    cancel  : 'Cancel', 
}); 

由於垃圾尋找輸出不來自實際保存在數據庫中的內容,成功發佈後的新加載意味着頁面以de的形式出現首創。

這不是一個奇妙的工作,但它的工作原理,並不依賴於討厭的黑客。