我使用此javascript
函数显示弹出传递url
作为参数,但我希望表单在没有onclick
的情况下自动显示,并且它不起作用。
<!-- show_modal.php included in body -->
<script type="text/javascript">
function showModal(url)
{
// SHOWING AJAX PRELOADER IMAGE
jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');
// LOADING THE AJAX MODAL
jQuery('#modal_ajax').modal('show', {backdrop: 'true'});
// SHOW AJAX RESPONSE ON REQUEST SUCCESS
$.ajax({
url: url,
success: function(response)
{
jQuery('#modal_ajax .modal-body').html(response);
}
});
}
</script>
<!-- (Ajax Modal)-->
<div class="modal fade" id="modal_ajax">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title"><?php echo $system_name;?></h4>
</div>
<div class="modal-body" style="height:500px; overflow:auto;">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<!-- show_modal.php ends -->
PHP $ url变量
<?php $url = "'".base_url() . "index.php?modal/popup/student_add/1'";?>
自动致电
<script type="text/javascript">
$(document).ready(function(){
showModal(<?=$url?>);
});
</script>
当我致电documentready
时:只显示深色背景
适用于onclick
<a href="#" onclick="showModal(<?=$url?>);" > </a>
控制台:
答案 0 :(得分:1)
页面中的哪个位置是RewriteRule ^([^.]+) index.php?routestring=$1 [L,QSA]
来电?如果它位于加载jQuery的位置之上,则ready
将无法使用,因为ready
尚不存在。
如果是这种情况,您可能会在$
的{{1}}行中出现错误消息。移动将jQuery加载到您尝试调用它的脚本块上方的脚本标记应该修复它。
当浏览器正在解析页面并且遇到没有ReferenceError: $ is not defined
属性的<script>
块时,它会立即运行块中的代码。如果脚本标记具有src
属性,则会下载代码然后运行它,然后再转到下一个脚本标记。因此,如果在告诉浏览器加载jQuery之前调用src
,则浏览器不知道$()
的含义,因为jQuery没有将$
设置为对自身的引用然而。 (有the console的方式,但你必须选择它们。)
单击链接时它工作的原因是$
处理程序在您单击它之前不会运行。这为jQuery提供了加载的时刻,以便在尝试调用它时定义click
。
答案 1 :(得分:0)
试试这个:
1)确保在传递showModal函数之前生成$ url,因此在页面开头声明$ url
2)从$ url
中删除额外的单引号连接<?php $url = "aa"."index.php?modal/popup/student_add/1";?> //Remove extra single quote concatenation from $url
<script>
$( document ).ready(function() {
showModal('<?php echo $url; ?>'); // add single quotes here
});
function showModal(url)
{
// SHOWING AJAX PRELOADER IMAGE
jQuery('#modal_ajax .modal-body').html('<div style="text-align:center;margin-top:200px;"><img src="assets/images/preloader.gif" /></div>');
// LOADING THE AJAX MODAL
jQuery('#modal_ajax').modal('show', {backdrop: 'true'});
// SHOW AJAX RESPONSE ON REQUEST SUCCESS
$.ajax({
url: url,
success: function(response)
{
jQuery('#modal_ajax .modal-body').html(response);
}
});
}
答案 2 :(得分:-1)
编辑回答
请尝试确定您的脚本中是否会使用jQuery
或$
,此外如果您的脚本运行良好,请点击此元素<a href="#" onclick="showModal(<?=$url?>);" > </a>
,然后您可以使用jQuery {{1模拟DOM准备好的模态链接的点击事件。
以下是您想要实现的一些测试小提琴。第一和第二小提琴是好的第3和第4小有一个小缺陷。
http://jsfiddle.net/WQXXT/1911/
http://jsfiddle.net/WQXXT/1912/
http://jsfiddle.net/WQXXT/1913/
http://jsfiddle.net/WQXXT/1914/
在ajax中使用beforeSend的示例