php - 为什么我不能将此变量传递给 javascript 函数?

标签 php javascript html

我的 php 文件中有一个变量,每当用户单击我的 php 页面上的链接时,我想将该变量传递给 javascript 函数。

这里是 php 的简要介绍:

$delete_img=$image_id.'_'.$newfilename;
$display_image.="<td><img src='../temp_images/$newfilename'>";
if ($i==$extra_pic){ 
$display_image.="<br><a href='#' onclick='window.parent.reset_imageform($i, $delete_img);'>delete picture</a></td>";}

“if($i==$extra_pic) 为真所以不要介意...

问题是,如果您单击“删除图片”链接,应该会调用函数 reset_imageform(nr, pic_nr),但每当我尝试将变量 $delete_img 传递给该函数时,它不会被调用。 一旦我从这样的调用中删除了这个变量'reset_imageform($i);'然后就可以了。但是添加该变量将使其不起作用。 该函数根本没有被调用!

该变量包含一个随机 id nr,带有下划线,然后是一个文件名,例如:23432423439_picture.jpg

这里有什么我遗漏的吗,我应该在用 php 发送它之前对 $delete_img 做些什么吗?

我所有的文档都是utf-8格式!

谢谢

PS:如果您需要更多信息,请告诉我...

最佳答案

因为它是一个字符串,所以您需要将其用引号引起来。

正确的做法是这样的:

$display_image.='<br><a href="#" onclick="window.parent.reset_imageform(' . $i . ', '
    . htmlspecialchars(json_encode($delete_img))
    . ');">delete picture</a></td>';

我交换了引号以使其适用于任何字符串;否则,如果您在其他地方使用它并且字符串包含撇号,它将不起作用。另一种交换引号的方法是将 ENT_QUOTES 传递给 htmlspecialchars() .

你说 $i 是它自己的作品,所以我假设 $i 是一个整数 - 因此它不需要引号。

关于php - 为什么我不能将此变量传递给 javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1716736/

相关文章:

javascript - 使用正则表达式将字符替换为特定字符

javascript - 是否可以在闭包中使用外部定义的函数

javascript - jquery 根据输入校验值隐藏div

php - 如何使我的 URL 像 index.php?page=Login

php - 将 PHP 变量传递给 AJAX 变量

javascript - 根据变量创建本地存储计数器(无开关功能)

javascript - 为什么在 HTML 中使用 onClick() 是一种不好的做法?

javascript - 上传图片并显示预览

php - 如何取回我的 Laravel 哈希密码?

php - 如何保护需要原始使用的数据