Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter控制器中的BootstrapDialog警报_Php_Codeigniter_Bootstrap Dialog - Fatal编程技术网

Php Codeigniter控制器中的BootstrapDialog警报

Php Codeigniter控制器中的BootstrapDialog警报,php,codeigniter,bootstrap-dialog,Php,Codeigniter,Bootstrap Dialog,我想在控制器中使用bootstrapDialog alert()而不是浏览器的默认alertbox,但它不起作用 我在视图底部的文件夹中包含了这些脚本 <link rel="stylesheet" href="assets/css/bootstrap-dialog.min.css" /> <script src="assets/js/bootstrap-dialog.min.js"></script> 控制器 function student(){

我想在控制器中使用bootstrapDialog alert()而不是浏览器的默认alertbox,但它不起作用

我在视图底部的文件夹中包含了这些脚本

<link rel="stylesheet" href="assets/css/bootstrap-dialog.min.css" />
<script src="assets/js/bootstrap-dialog.min.js"></script>

控制器

function student(){

  if ($student_status == 'paid'){
    echo '<script type="text/javascript">';
    echo 'BootstrapDialog.alert('Your Registration was successful')';
    echo '</script>';
  }
 else {
    //  redirect url
  }
}
function student(){
如果($student_status==‘paid’){
回声';
echo'BootstrapDialog.alert('您的注册成功');
回声';
}
否则{
//重定向url
}
}

我还尝试在控制器中回显css和js文件,但失败了。如果我回显默认的alertbox,它会工作,请问我会做错什么?

首先-您有一些错误:

<!DOCTYPE html>
<html>
<head>

  <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/css/bootstrap-dialog.min.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script>

  <title>Bootstrap Dialog Test</title>
</head>

<body>
<!-- IF SUCCESSFUL -->
<?php $alert= ''; ?>
<?php   if ($alert == 'success'): ?>

<script type = "text/javascript">
BootstrapDialog.alert('Your Registration was Successful');
</script>

<?php endif; ?>

<!-- IF FAILED -->

<?php   if($alert == 'failed'): ?>

<script type = "text/javascript">
BootstrapDialog.alert({
            title: 'An Error Occured',
            message: 'Your Registration failed',
            type: BootstrapDialog.TYPE_DANGER,
            buttonLabel: 'Close'

        });

</script>
<?php endif; ?>

</body>
</html>
function student(){

  if ($student_status == 'paid'){
    $data['alert'] = 'success';
  }
 else {
    $data['alert'] = 'failed';
  }
  $this->load->view(view_page, $data);
}
  • 您需要转义警报的单引号,如:

    echo 'BootstrapDialog.alert(\'Your Registration was successful\')';
    
    或者您可以混合使用单引号和双引号,如:

    echo 'BootstrapDialog.alert("Your Registration was successful")';
    
  • 您可能还需要加载带有前导斜杠的脚本和css,如:

    <link rel="stylesheet" href="/assets/css/bootstrap-dialog.min.css" />
    <script src="/assets/js/bootstrap-dialog.min.js"></script>
    
    
    
  • 您正在将样式表作为脚本加载,
    不正确,请使用

second-以这种方式混合使用javascript和php不是一个好主意,不能从php调用jquery函数,只能生成html,然后在运行时执行。这将有助于:

  if ($student_status == 'paid'){
    $str='  <script src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
           <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
           <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
           <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script>
           <script type="text/javascript">
               setTimeout(function() { 
                  BootstrapDialog.alert(\'Your Registration was successful\') 
               },10);
           </script>';
    echo $str;
  }
if($student\u status==‘paid’){
$str='1
setTimeout(函数(){
BootstrapDialog.alert(\'您的注册成功\')
},10);
';
echo$str;
}
注意
setTimout()
函数,需要留出一点时间来确保所有文件都已加载

第三-正确的方法是使用ajax:请参阅:

  • jqueryajax调用php函数student

  • 函数student返回true或false

  • 在ajax成功回调中,添加bootstrapDialog.alert

您必须使用转义引号或双引号。

引导对话框是建立在引导之上的,因此必须包含引导css和引导js,然后是引导对话框css和js

 <!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
输出:

<!DOCTYPE html>
<html>
<head>

  <link href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/css/bootstrap-dialog.min.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap3-dialog/1.35.1/js/bootstrap-dialog.min.js"></script>

  <title>Bootstrap Dialog Test</title>
</head>

<body>
<!-- IF SUCCESSFUL -->
<?php $alert= ''; ?>
<?php   if ($alert == 'success'): ?>

<script type = "text/javascript">
BootstrapDialog.alert('Your Registration was Successful');
</script>

<?php endif; ?>

<!-- IF FAILED -->

<?php   if($alert == 'failed'): ?>

<script type = "text/javascript">
BootstrapDialog.alert({
            title: 'An Error Occured',
            message: 'Your Registration failed',
            type: BootstrapDialog.TYPE_DANGER,
            buttonLabel: 'Close'

        });

</script>
<?php endif; ?>

</body>
</html>
function student(){

  if ($student_status == 'paid'){
    $data['alert'] = 'success';
  }
 else {
    $data['alert'] = 'failed';
  }
  $this->load->view(view_page, $data);
}

试试这段代码

<link rel="stylesheet" href="<?php echo base_url();?>assets/css/bootstrap-dialog.min.css" />
<script src="<?php echo base_url();?>assets/js/bootstrap-dialog.min.js"></script>