我的 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/