[英]What is the Problem with this kind of Data for Javascript and PHP
我有一个Html表,该表包含通过服务器端php生成的数据。它包含许多行。每行包含一个称为“批准”的按钮。 当单击“批准”时,它将转到一个php文件并执行其数据库事务处理
这是我在php中“批准按钮”的代码
$cntrl = "<input name=btn1 type=button id=btn1 value=Approve onClick=\"callApprove('".$row['val1']."','".$row['val2']."');\"";
这是单击“批准”时调用的JS函数。
function callApprove(val1,val2){
var url = 'approve.php?id=<?php echo $_REQUEST['var3'];?>¶m1='+val1+'¶m2='+val2;
window.open(url)
}
现在,这里的问题是当我将数据作为“ ABC6252756 / A#1829533”时。当我将这种数据val2传递给approve.php时,就像当我们拥有这种数据“ ABC07-USVDL2”时一样值已成功传递。 (/,#)字符有什么问题吗? 为了安全起见,我已为(“ ABC6252756 / A#1829533”)此数据输入了val2警报。 可能是什么问题?
您在callApprove
中引用了val1
和val2
, callApprove
在设置它们的地方包含代码。 另外,您可以在onClick函数中使用参数调用callApprove,但是定义中没有参数( function callApprove
),也许这就是初始化它们的目的?
我认为哈希是您的问题。 哈希符号 #
在URL中具有特定含义,并且该含义仅是客户端方面的问题; 由于这是客户端/浏览器问题,因此哈希以及哈希之后的所有内容都不会发送到服务器。 当您在URL中插入“ ABC6252756 / A#1829533”时,浏览器将在将URL发送到服务器之前删除“#1829533” 及其后的所有内容 。
解决方案是对查询字符串的每个部分进行正确的URL编码。 您可能会在JavaScript中使用encodeURIComponent
,或者在PHP中使用urlencode
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.