3

如果我想在 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!?";
4

2 回答 2

1

如果您使用单引号字符串连接,那将不是问题。剩下的就是当你在查询字符串中使用它时。在这种情况下,您应该使用encodeURIComponent

也改变你var的东西。var是 JavaScript 中的关键字。

于 2013-01-08T10:55:49.483 回答
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
于 2013-01-08T11:06:05.117 回答