[英]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.