Как передать переменную PHP в JavaScript аналогично функции WordPress wp_localize_script - PullRequest
0 голосов
/ 16 марта 2019

WordPress имеет wp_localize_script (), который позволяет передавать переменную PHP непосредственно в JS.Пользователь не может видеть переданные данные из источника страницы, в то время как если передать данные из PHP в JS, то мы должны вызвать эту переменную, например.

<script>
var userName = '<?php echo $username ?>';
</script>

Пользователь может манипулировать ею из инструментов браузера.Есть ли у нас какой-либо безопасный способ сделать это в ядре PHP, где пользователь не видит или не может манипулировать данными, передаваемыми из PHP в JS напрямую?

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Простой способ получить переменную из PHP в Javascript - это использовать тип данных JSON.Убедитесь, что вы только отображаете объект (обратитесь к echo $ jsonObject).Преобразуйте вашу переменную в JSON, просто поместив ее в пример массива:

$myVar = 10;
$jsonObject = json_encode(array(array("myVar" => 10))); //I use two arrays because I will use javascript eval() method.
echo $jsonObject;

В javascript просто получите это, используя eval () для преобразования строки в объект Javascript

$.post(linkToPHPScript,{},function(data){
var myVarInJavascript = eval(data);
myVarInJavascript = myVarInJavascript[0].myVar; //You got your variable here in Javascript
});
0 голосов
/ 16 марта 2019

да, вы можете.Вы можете попробовать использовать wp ajax.сделайте ajax-запрос из javascript в систему wordpress, а затем в бэкэнд-системе wp создайте функцию для ответа или отправки данных обратно в javascript.как то так:

<script>
    //sending the request to get the username with ajax
    function get_the_username()
    {
        jQuery.ajax({
            url : 'https://yoursite/wp-admin/admin-ajax.php',
            dataType : 'json',
            data : {
                action : 'get_the_username'
            },
            type : 'POST',
            beforeSend : function(){
                //alert("sending:");
            },
            success : function( data ){



            }

        });
    }

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...