我有一个php变量
$query="insert into msnowplaying values";
然后,我想追加一个查询字符串
$q1="('1', '$selMovieTitle1', 'ST001', '1', '' )";
$query.=$q1;
echo "<script type='text/javascript'>alert('$query');</script>";
但是,警报没有显示任何内容。不知何故,控制台上出现了错误:
[10:12:06.851] SyntaxError: missing ) after argument list @ http://localhost:1234/2013_12_2/controller/doaddNowPlaying.php:1
我错过了什么?
我已将$q1
更改为" a"
,并且警报显示为insert into msnowplaying values a
我不知道发生了什么,我真的需要一些帮助。感谢。
答案 0 :(得分:4)
请记住,在HTML点击查看器之前在服务器上解析PHP ,在用户收到HTML之后在浏览器中解析javascript
您发送给用户的内容是由PHP写入数据的,就像您手动编写的那样,包括以后可能被解释为javascript代码的任何内容。
当您向浏览器回显$query
时,您很可能最终得到如下内容:
<script type='text/javascript'>alert('('1', '$selMovieTitle1', 'ST001', '1', '' )');</script>
你看到这是如何无效的JavaScript?您在alert('..')
中使用未转义的单引号。首先,如果你想在javascript中看到正确的字符串,试试这个:
echo '<script type="text/javascript">alert("'.addslashes($query).'");</script>';
这里我们使用函数addslashes()
(http://php.net/addslashes)来适当地转义引号。
答案 1 :(得分:1)
$query = "insert into msnowplaying values";
$query .= "('1', '$selMovieTitle1', 'ST001', '1', '' )";
$query = addslashes($query);
echo "<script type='text/javascript'>alert('$query');</script>";
试试