Bootstrap与toastr不兼容

时间:2015-09-24 16:11:32

标签: javascript twitter-bootstrap toastr

我在我的php函数中使用它,现在我在php中得到一个错误我觉得那个问题,(语法错误:缺少;在语句第133行之前)我的php函数是:



<?php
function VISION_TO_REPORT_MESSAGES($report_tag = "test", $subject_parameters = '', $message_parameters = '', $output=true, $lang = '')
{
// action report messages templates ...
	$report_tag = strtolower(trim($report_tag));
if (strlen($report_tag))
{        

		$report_message = array();
		$db = new clsDBcms();
        $SQL = " SELECT * FROM report_messages WHERE  report_tag= " . $db->ToSQL($report_tag, ccsText) . " LIMIT 1 ";		
       $db->query($SQL);
    $Result = $db->next_record();
    if ($Result)
	{
		$report_message['lang'] = $db->f("lang");
		if(function_exists("VISION_TO_TRANSLATE"))
		{
		$report_message['subject'] = VISION_TO_MULTI_CONTENT($db->f("subject"),$lang);
		$report_message['message'] = VISION_TO_MULTI_CONTENT($db->f("message"),$lang);
		}
		else
		{
		$report_message['subject'] = $db->f("subject");
		$report_message['message'] = $db->f("message");
		}

		$report_message['css'] = $db->f("css");
		$report_message['redirect_to'] = $db->f("redirect_to");
		$report_message['type'] = $db->f("type");

			if(!empty($subject_parameters))
			{
			while (list($this_tag,$value) = each($subject_parameters))
			$report_message['subject']  = preg_replace("/".$this_tag."/i", $value, $report_message['subject']);
			}

			if(!empty($message_parameters))
			{
			while (list($this_tag,$value) = each($message_parameters))
			$report_message['message']  = preg_replace("/".$this_tag."/i", $value, $report_message['message']);
			}
		}
        $db->close();
		if($output == true && isset($report_message['message']))
		//$output = '<script type="text/javascript">';
		$output = 'toastr.options ={ 
		  "closeButton": false,
			"debug": false,
			"newestOnTop": false,
			"progressBar": true,
			"positionClass": "toast-top-center",
			"preventDuplicates": false,
			"onclick": null,
			"showDuration": "300",
			"hideDuration": "1000",
			"timeOut": "5000",
			"extendedTimeOut": "1000",
			"showEasing": "swing",
			"hideEasing": "linear",
			"showMethod": "fadeIn",
			"hideMethod": "fadeOut",
			}';
		$output .=  'toastr.' . $report_message['css'] . "('" . str_replace("'", "\\'", htmlentities($report_message['message'])) . "'" . (isset($report_message['subject']) ? ", '" . str_replace("'", "\\'", htmlentities($report_message['subject'])) . "'" : null) . ');';
        return $output;
    }		
	}
?>
&#13;
&#13;
&#13;

我的html中的第133行是:

toastr.success(&#39;用户记录已成功更新。&#39;,&#39;记录已更新。&#39;);

在我的页面的头部,我使用:

<link href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.2/toastr.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.js"></script>

<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.js"></script>

1 个答案:

答案 0 :(得分:0)

在将引导程序添加到 toastr 时,我没有看到任何复杂情况,但您的代码确实存在一些问题:

  1. 首先,如果您要共享代码,请尝试包含必要的库以实际运行它。您可以使用下面的示例或标记上的说明。
  2. toastr options = {应有一段时间来访问options对象上的toastr属性,如下所示:toastr.options = {
  3. toastr-success('The...应该使用句点,而不是连字符来调用成功方法,如下所示:toastr.success('The...
  4. 如果您自动将<strong>转换为&lt;strong&gt;,则不可能将其呈现为html。 它已被转义!因此您需要像常规html一样包含括号,然后告诉toastr not escape it这样:toastr.options.escapeHtml = false;
  5. 这是Stack Snippets中的一个工作演示 - 在提问时请将此作为未来的模板,以便人们可以看到代码中的实际问题。

    &#13;
    &#13;
    toastr.options = {
      "closeButton": false,
      "debug": false,
      "newestOnTop": false,
      "progressBar": true,
      "positionClass": "toast-top-center",
      "preventDuplicates": false,
      "onclick": null,
      "showDuration": "300",
      "hideDuration": "1000",
      "timeOut": "5000",
      "extendedTimeOut": "1000",
      "showEasing": "swing",
      "hideEasing": "linear",
      "showMethod": "fadeIn",
      "hideMethod": "fadeOut",
      "escapeHtml": false
    }
    
    toastr.success('The <strong>User</strong> record has been successfully updated.', 'Record Updated.');
    &#13;
    <link href="//cdnjs.cloudflare.com/ajax/libs/toastr.js/2.1.2/toastr.css" rel="stylesheet"/>
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.js"></script>
    
    <link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet"/>
    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.5/js/bootstrap.js"></script>
    &#13;
    &#13;
    &#13;