带空格的 Javascript 字符串参数不起作用

标签 javascript php

如标题所示,我正在 php 中调用 onclick 方法,但每个带有空格的字符串似乎都会失败。

php(mysql循环)

echo '<img onclick=test("'.$row['name'].'","name'.$row['id'].'") src="blabla.png"/>';

JavaScript

function test(vali, id){

   alert(vali); //Maria, Josef (but not "Michael Jackson")
   alert(id); //name23, name28
}

正如我所说,如果它是一个不带空格的字符串,则会调用警报方法并显示文本,但是至少有一个空格则不会发生任何情况。

最佳答案

您的整个 onclick 处理程序需要被引用。然后,您还需要对其中的引号进行 HTML 转义。

echo '<img onclick="test(&quot;'.$row['name'].'&quot;,&quot;name'.$row['id'].'&quot;)" src="blabla.png"/>';

在 HTML 中,这将显示为

<img onclick="test(&quot;A Name With Spaces&quot;,&quot;name1&quot;)" src="blabla.png"/>

javascript部分最终被解码为

test("A Name With Spaces","name1")

关于带空格的 Javascript 字符串参数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42003076/

相关文章:

php - 即使有持久连接,lastInsertID也会返回0

php - 如何在使用 jQuery Ajax 方法时接收和处理来自 Php 脚本的响应

javascript - 将对象文字插入数组

javascript - 如何测试一个点是否在旋转一个 Angular 矩形区域内?

javascript - 将数组插入对象

php - 这个 jQuery UI 自动完成远程 JSON 请求 Google Suggest (Codeigniter) 有什么问题吗?

javascript - 动态帖子之间的延迟

Javascript "window.open"代码在 Internet Explorer 7 或 8 中不起作用

javascript - JS过滤数组根据条件去除重复值

php - 如何在 "single "foreach() 循环中使用多个数组