Я использую PHP, jQuery, AJAX, Smarty для своего сайта. У меня есть строка кода из шаблона smarty. Я хочу вызвать функцию jQuery AJAX в onclick этой гиперссылки, но я не могу ее назвать. Можете ли вы помочь мне в вызове функции jQuery AJAX? Следующий мой код. Код из шаблона Smarty:
<a class="edit_user_transaction_status" href="{$control_url}{$query_path}?op=edit_user_transaction&page={$page}&txn_no={$user_transaction_details.transaction_no}&transaction_data_assign={$user_transaction_details.transaction_data_assign}&user_id={$user_id}{if $user_name!=''}&user_name={$user_name}{/if}{if $user_email_id!=''}&user_email_id={$user_email_id}{/if}{if $user_group!=''}&user_group={$user_group}&{/if}{if $user_sub_group!=''}&user_sub_group={$user_sub_group}{/if}{if $from_date!=''}&from_date={$from_date}{/if}{if $to_date!=''}&to_date={$to_date}{/if}{if $transaction_status!=''}&transaction_status={$transaction_status}{/if}{if $transaction_no!=''}&transaction_no={$transaction_no}{/if}">Update</a>
Функция jQuery AJAX выглядит следующим образом:
$(".edit_user_transaction_status").click(function(e) { e.preventDefault(); //for confirmation that status change var ans=confirm("Are you sure to change status?"); if(!ans) { return false; } var post_url = $(this).attr('href'); var transaction_status_update = $('#transaction_status_update').val(); $.ajax({ type: "POST", url: post_url+"&transaction_status_update="+transaction_status_update, data:$('#transaction_form').serialize(), dataType: 'json', success: function(data) { var error = data.login_error; $(".ui-widget-content").dialog("close"); //This variables use for display title and success massage of transaction update var dialog_title = data.title; var dialog_message = data.success_massage; //This get link where want to rerdirect var redirect_link = data.href; var $dialog = $("<div class='ui-state-success'></div>") .html("<p class='ui-state-error-success'>"+dialog_message+"</p>") .dialog({ autoOpen: false, modal:true, title: dialog_title, width: 500, height: 80, close: function(){ document.location.href =redirect_link; } }); $dialog.dialog('open'); } }); }); });
Если я попытаюсь напечатать предупреждение в начале функции, оно не будет напечатано. Можете ли вы помочь мне в достижении этого? Заранее спасибо.
Исправленный код:
$(".edit_user_transaction_status").click(function(e) { e.preventDefault(); //for confirmation that status change var ans=confirm("Are you sure to change status?"); if(!ans) { return false; } var post_url = $(this).attr('href'); var transaction_status_update = $('#transaction_status_update').val(); $.ajax({ type: "POST", url: post_url+"&transaction_status_update="+transaction_status_update, data:$('#transaction_form').serialize(), dataType: 'json', success: function(data) { var error = data.login_error; $(".ui-widget-content").dialog("close"); //This variables use for display title and success massage of transaction update var dialog_title = data.title; var dialog_message = data.success_massage; //This get link where want to rerdirect var redirect_link = data.href; var $dialog = $("<div class='ui-state-success'></div>") .html("<p class='ui-state-error-success'>"+dialog_message+"</p>") .dialog({ autoOpen: false, modal:true, title: dialog_title, width: 500, height: 80, close: function(){ document.location.href =redirect_link; } }); $dialog.dialog('open'); } }); });
Примечание: Удалить });
из последней строки.