我在DNN頁面,如: http://nolimitswebdesign.com.dnnmax.com/test/tabid/57/ctl/Edit/mid/374/Default.aspxDotNetNuke的,PHP,模擬使用遠程回傳捲曲
我需要發送POST請求使用PHP +捲翹它修改文本區的內容,並保存該頁面它(就像某人手動修改它並單擊該頁面上的更新按鈕)。我懷疑用DNN可能是不可能的。請指教。
我在DNN頁面,如: http://nolimitswebdesign.com.dnnmax.com/test/tabid/57/ctl/Edit/mid/374/Default.aspxDotNetNuke的,PHP,模擬使用遠程回傳捲曲
我需要發送POST請求使用PHP +捲翹它修改文本區的內容,並保存該頁面它(就像某人手動修改它並單擊該頁面上的更新按鈕)。我懷疑用DNN可能是不可能的。請指教。
下面是我將如何解決相同的一般技術將在任何網站上工作的問題。在這種情況下,DNN只是一個普通的ASP.Net網站。首先看一下被點擊更新時運行的JavaScript:
__doPostBack('dnn$ctr374$EditHTML$cmdUpdate','')
找到__doPostBack方法:
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
這是許多ASP.Net形式使用的標準doPostBack()方法。從這裏你可以看到你想用方法調用中的適當值填充__EVENTTARGET和__EVENTARGUEMENT隱藏字段並提交表單。
當然,您還需要填寫您實際想要保存到文本框的輸入控件中的數據。如果你使用HTML模塊的基本文本框模式,那麼你可能會更容易做到這一點,那麼你只需要設置一個textarea的值,而不是找出在fckEditor中插入值的位置,並且該技術將會如果站點配置爲使用Telerik提供程序而不是fck提供程序,則仍然有效。
有一點需要注意的是,控件名稱可能會不時變化,所以您需要確保您正在閱讀事件目標的正確ID,而textarea不只是硬編碼的東西。
鏈接在評論結束時包含完整的源代碼,我相信我已經完成了您建議的所有檢查,請檢查並提供反饋:http://www.dotnetnuke.com/Community/Forums/tabid/795/ forumid/201/threadid/390240/scope/posts/Default.aspx – Shoaibi 2010-10-11 04:12:28
@Shoaibi,快速查看鏈接上的代碼看起來總體上對我來說(注意沒有PHP經驗)。我沒有看到任何東西來保存登錄cookie,這可能是一個問題。對cookies進行排序後,我將使用Live HTTP Headers來捕獲手動文章中的所有值,並讓腳本使用這些值。然後我會編輯你想改變的值。 – ScottS 2010-10-11 23:33:07
我可以在不登錄的情況下編輯textarea裏面的文本,我真的需要維護cookie嗎? – Shoaibi 2010-10-12 03:12:52