如果我想在Javascript中的单引号之间放置一个值,我该如何清理/编码它以使值中的任何引号都不会引起问题?
我还想在查询字符串中使用此值,然后我将传递给PHP。
无论使用什么,我都需要能够使用PHP将其解码为正常值。
示例:
$foo = "Hey, what's up!?"; // PHP
getGrades('<?=$foo?>'); // JS Function
function getGrades(var) {
// Set file to get results from..
var loadUrl = "ajax_files/get_grades.php";
// Set data string
var dataString = 'grade=' + var;
// Run the AJAX request
runAjax(loadUrl, dataString);
}
function runAjax(loadUrl, dataString) {
jQuery.ajax({
type: 'GET',
url: loadUrl,
data: dataString,
dataType: 'html',
error: ajaxError,
success: function(response) {
someFunction(response);
}
});
}
// get_grades.php file
$grade = $_GET['grade']; // We now want this value to be it's normal value of "Hey, what's up!?";
答案 0 :(得分:1)
如果您使用单引号字符串连接,则不会出现问题。剩下的就是在查询字符串中使用它时。在这种情况下,您应该使用encodeURIComponent。
同时将var
更改为其他内容。 var
是JavaScript中的关键字。
答案 1 :(得分:1)
getGrades('<?=$foo?>'); // JS Function
json_encode
将使字符串JavaScript安全(并引用它)。
getGrades(<?php echo json_encode($foo); ?>);
我还想在查询字符串中使用此值,然后我将传递给PHP。
传递data:
对象,而不是字符串。 jQuery将为您处理转义。
var dataString = { grade: var }; // Rename the variable too