将php变量分配给javascript变量

时间:2013-08-15 10:49:40

标签: javascript php jquery mysql ajax

如何使用php变量

指定javascript变量的值
 $(function(){
    $("select[name=myselectlist]").change(function(){
        var id = $(this).val();
        if(id != 0) {       
            $.post("ajax.php", {"id":id}, function(){
                var data = "somedatahere";
                document.getElementById("namesurname").value = data;
            });
        }
    });
});

上面的代码完美无需php.Yet,我需要每次都从mysql中分配“var data”。

3 个答案:

答案 0 :(得分:6)

如果您的php var在您拥有此功能的文件范围内,您可以这样做:

var data = "<php echo $myvar; ?>";

答案 1 :(得分:2)

1)你可以像Shadowfax一样写,但更简单:

var data = '<?=$dbResult?>';

2)更正确。使用PHP中的json_encode函数将结果传递给AJAX响应,以便您可以按如下方式重写JavaScript代码块:

...
$.post("ajax.php", {"id":id}, function(response){
    $("#namesurname").val(response.data);
});

例如,后端的PHP代码块可能如下所示:

....
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest')) {
    echo json_encode(array('data' => $dbResult));
}

答案 2 :(得分:1)

如果这个javascript代码在php文件中,那么你可以简单地使用代码中更新的php变量: -

<?php
// assign a value
$data = 'your data here';
?>

$(function(){
    $("select[name=myselectlist]").change(function(){
        var id = $(this).val();
        if(id != 0) {       
            $.post("ajax.php", {"id":id}, function(){
                var data = "somedatahere";
                document.getElementById("namesurname").value = "<?php echo $data;?>";
            });
        }
    });
});