вот код. Я сделал функцию в javascript в файле PHP.
function getGeneratedLink(){
alert("hi");
$('#generateLinkModal').show();
$('.generated_link_section').slideDown("fast");
$('.generated_link_section').show();
$("#generateLinkModal div.modal-body span.message").hide();
$("#generateLinkModal div.modal-body input").hide();
$("#generateLinkModal div.modal-body span.loader-gif").show();
$.ajax({
type: "POST",
url: <?php echo $this->createUrl('admin/generateLink') ?>,
data: {},
async: false,
dataType: "json",
success: function(data) {
$("#generateLinkModal div.modal-body span.loader-gif").hide();
if (!data['session']) {
$('.generated_link_section').slideUp('fast', function(){
alert(data['session_msg']);
window.location = data['url'];
});
} else if (!data['success']) {
$("#generateLinkModal div.modal-body span.message").text(data['error_msg']);
$("#generateLinkModal div.modal-body span.message").show();
} else {
$("#generateLinkModal div.modal-body input").val(data['link']);
$("#generateLinkModal div.modal-body input").show();
}
}
});
}
Позже я делаю вызов этой функции, например, не включая теги html
onclick="getGeneratedLink()">New Registration Link</button></a></li>
он показывает ссылочную ошибку, функция хорошо включена между тегами скрипта.
Я пробовал несколько вариантов вызова функций.. без каких-либо плодотворных результатов.
я не знаю, что вызывает эту ошибку
<pre><code>
<div class='admin-work-area'>
<!-- Jquery files -->
<script type="text/javascript" src="<?php echo $baseURL ?>/jquery/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo $baseURL ?>/jquery/jquery-blockUI.min.js"></script>
<script type="text/javascript" src="<?php echo $baseURL ?>/jquery/jquery.tablesorter.min.js"></script>
<!--BOOTSTRAP-->
<link rel="stylesheet" type="text/css" href="<?php echo $baseURL; ?>/bstrap/css/bootstrap.min.css" media="all" />
<script type="text/javascript" src="<?php echo $baseURL; ?>/bstrap/js/bootstrap.min.js"></script>
<!--CUSTOM STYLESHEET-->
<link rel="stylesheet" type="text/css" href="<?php echo $baseURL ?>/wizshark/css/style.css" media="all" />
<ul id="admin-tabs" class="nav nav-tabs">
<li class="active"><a data-toggle='tab' href="#tab-manage-users">Manage Users</a></li>
<?php if($isSuperAdmin) { ?>
<li><a data-toggle='tab' href="#tab-manage-admins">Manage Admins</a></li>
<?php } ?>
<li><a data-toggle='tab' href="#tab-alogs">Audit Logs</a></li>
<li><a data-toggle='tab' href="#tab-charts">Monitor Charts</a></li>
<li class="pull-right"><a href="#" style="min-width: 100px;max-height: 20px"><input type="text" placeholder="Search" class="search-query nopadding-verticle"></a></li>
<li class="pull-right"><a href="#"><button class="btn nopadding-verticle" onclick="getGeneratedLink()"><i class="icon-plus"></i> New Registration Link</button></a></li>
<li class="pull-right"><a href="#"><button class="btn nopadding-verticle" onclick="javascript:void window.open('<?php echo $this->createUrl('admin/addNewUser') ?>','1359116962684','width=800,height=650,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=0,left=0,top=0');return false;"><i class="icon-plus"></i> New User</button></a></li>
</ul>
<div id="admin-tabs-content" class="tab-content admin-tabs-content">
<div id="tab-manage-users" class="tab-pane active">
<ul class="unstyled list list-users">
<li>
<div class="headers">
<div class='username'> <b> Username </b> </div>
<div class='email'> <b> Email </b> </div>
<div class='status'> <b> Status </b> </div>
<!--<div class='usage'> <b> Usage </b> </div>-->
<div class='count-quota'> <b> Traces / Quota </b> </div>
<div class='upload-size-quota'> <b> Size / Quota </b> </div>
</div>
</li>
<!-- the list of divs of users will come here-->
</ul>
<span id="list-users-json" style="visibility:hidden">
<?php echo $admin_model->get_users_list(); ?>
</span>
<script type="text/javascript">
display_users();
</script>
</div>
<?php echo $this->createUrl('admin/generateLink')?>
собирается генерировать URL без каких-либо кавычек вокруг него. Строковые литералы должны иметь котировки вокруг них.
Используйте <?php echo json_encode($this->createUrl('admin/generateLink'));?>
<?php echo json_encode($this->createUrl('admin/generateLink'));?>
вместо этого.
Когда вы имеете ошибку JavaScript, всегда проверяйте свой фактический JavaScript, а не ваш PHP.
getGeneratedLink
в другой функции, например, в обработчике dom ready