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を何か他のものに変えてください。varJavaScriptのキーワードです。

于 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 に答える