2012-08-05 77 views
-1

PHP新手在这里...如何在PHP中使用Javascript触发警报

我试图在PHP中触发JavaScript中的警报,但似乎不起作用。 :

if(isset($_POST['save-text'])){ 

     // get form data, making sure it is valid 
     $submit_date = date('Y-m-d H:i:s'); 
     $content = mysql_real_escape_string(htmlspecialchars($_POST['editor'])); 

     $new_url = 'example.com/' . $key; 
     echo "<script>alert('$new_url');</script>"; 

     // build query 
     mysql_query("INSERT INTO `source`(`id`, `key`, `submit_date`, `ip`, `content`) VALUES (null, '$key','$submit_date','$ip','$content')") 
     or die(mysql_error()); 


    } 
+2

什么不起作用? – Amberlamps 2012-08-05 19:58:18

+0

是否输入了if块?我只是问:) – 2012-08-05 19:58:34

+0

是的...代码工作,但JavaScript的警报不出于某种原因。 – 2012-08-05 20:01:53

回答

3

您不能在页面的任何位置插入HTML和JavaScript;确保你在<script>标签有效的位置输出。

+1

也脚本标签应该说他们是什么样的脚本。 – 2012-08-05 20:02:34

+1

不是在DOM中的任何地方解析和执行脚本标记吗?我的意思是,在身体内联? – 2012-08-05 20:04:55

+1

我认为在HTML5中,你不必指定它是什么样的脚本 – jrubins 2012-08-05 20:05:05

-2

你的报价是错误的:

echo "<script>alert('$new_url');</script>"; 

应该是:

echo "<script>alert('" . $new_url . "');</script>"; 
+7

双引号允许PHP中的变量替换。你的新代码是错误的。 – 2012-08-05 20:03:23

+0

As @ IgnacioVazquez-Abrams说,双引号确实允许变量替换,所以现有代码是OK的(除非它没有'type')。你的代码必须是'echo'“;',但是确实没有任何意义,只是这样做会让阅读变得更加困难。 – 2012-08-05 20:13:01