Javascript在单个URL中传递多个变量的问题求助
错误原因
- 两次调用
location.assign()逻辑错误:location.assign()会立即触发页面跳转,跳转后当前页面的JavaScript代码会直接停止执行,因此第二个location.assign()永远不会运行。而且你两次跳转分别携带不同参数,后端也无法同时获取两个参数值。 - 字符串参数未加引号包裹:PHP输出的SKU、Part_no如果是包含字母、特殊字符的字符串类型,直接输出到JS代码中会被识别为未定义变量,触发语法错误,导致函数完全无法执行。
- 可选优化点:未对URL参数编码:如果参数包含中文、&、=等特殊字符,会导致URL解析错误,参数值传递不全。
修正代码
按钮部分
<td><input type="Button" value="Remove" onclick="deletefn('<?php echo $row['SKU'] ?>','<?php echo $row['Part_no'] ?>');"></td>
注意给PHP输出的变量外侧加单引号,作为JS的字符串参数边界。
JS函数部分
function deletefn(sku,part){ // 把两个参数拼接在同一个查询字符串中,用&分隔,同时对参数做URL编码 location.assign('delete.php?prosku=' + encodeURIComponent(sku) + '&partx=' + encodeURIComponent(part)); }
验证方式
修改后访问delete.php时,可以通过$_GET['prosku']和$_GET['partx']同时获取两个传递的参数值。
内容的提问来源于stack exchange,提问作者nz_19
相关产品推荐
相关产品推荐

