我想保存按鈕點擊文本框中的數據。我正在使用JQuery AJAX來執行此任務,如下所示。請注意,我在主題功能中製作了這個標籤。數據沒有得到保存使用JQuery.ajax
function theme_user_post_block($vars)
{
$themeUserCommentInput ='';
$themeUserCommentInput .= '<textarea id="txt_1"rows="1" cols="50"></textarea>';
$themeUserCommentInput .= '<input type="submit" value="Post Comment" align="center"
class="btnPostComment" id="btn_1" />'
return $themeUserCommentInput;
}
這能夠顯示我的文本框和按鈕裏面的頁面。現在,這裏是我的JS代碼: -
(function($)
{
Drupal.behaviors.PostComment= {
attach: function (context, settings) {
$('.btnPostComment', context).click(function (event) {
var post = "&newcomment=Comment1&logid=log1";
jQuery.ajax({
url: 'postcomment',
type: 'POST',
dataType: 'json',
data: post,
success: function (data) { alert(data); },
error: function(jqXHR, textStatus, errorThrown){alert(textStatus +
errorThrown);}
});
});
}
}
})(jQuery);
接下來,我創建一個URL名稱的菜單頁如下: -
function postcomment_menu(){
$items=array();
$items['postcomment']=array(
'title'=>t(''),
'type'=> MENU_CALLBACK,
'page callback' => 'user_comment_post',
'access arguments' => array('access content'),
);
return $items;
}
function user_comment_post(){
global $user;
$cid = db_insert('user_comment')
->fields(array(
'comment_user_id' => $user->uid,
'reference_id' => $_POST['logid'],
'comment_desc'=>$_POST['newcomment'],
'createdon'=>REQUEST_TIME,
))
->execute();
if($cid!=0)
{
//GetUserComments($i);
drupal_json_output("success");
}
}
所以我這樣做所需的jQuery + Ajax的所有東西提交功能。當我按下「發表評論」按鈕時,它給我錯誤警報說「errorundefined」。該警報顯示爲jQuery.AJAX函數內部的錯誤結果。此外,自定義菜單回調也沒有被調用。
您的示例代碼看起來不正確。即使從複製粘貼,請確保您顯示的代碼是有效的格式,否則我們不知道您是否有這個問題是因爲它。在這裏''textarea id =「txt_1'」rows =「1」cols =「50」>';''textarea'的'id'屬性'txt_1'中有一個額外的''' ',搞亂了格式。 – Nope 2013-05-11 15:54:48
對不起,我的代碼錯誤。實際上,爲簡單起見,id中的動態值被靜態值替換。我編輯了編碼部分。 – user1843970 2013-05-11 18:25:29