将PHP变量传递给JavaScript以在jQuery.ajax中使用 [英] Passing a PHP variable to JavaScript to use in jQuery.ajax

查看:68
本文介绍了将PHP变量传递给JavaScript以在jQuery.ajax中使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将变量从PHP传递到JavaScript以在我的jQuery.ajax调用中使用它.我现在已经尝试了很多东西,但是没有成功.

I'd like to pass a variable from PHP to JavaScript to use it inside my jQuery.ajax-call. I've tried a lot of things now, but without success.

这是我当前的代码:

$( document ).ready(function() {
    function getLog() {
        ms = Date.now();
        var chatlink = "<?php echo $clink; ?>";

        $.ajax({
            url: chatlink+ms,
            dataType: 'text',
            success: function(text) {
                $("#chat").text(text, "<br />");
                setTimeout(getLog, 500); // refresh every half second
            }
        })
     }
         
         
// some more code here


<?php $clink = 'foo.php'; ?>

推荐答案

如何将PHP变量传递给JavaScript

建议:

将必须使用PHP生成的内容作为全局变量进行部署,并在脚本中使用它们以保持源代码的整洁.

Deploy the content you must generate with PHP as global variables and use them in your scripts to keep your source code clean.


<?php
error_reporting(-1);
$foo     = 'bar';                          #1
$arr_foo = array( 'bar', 'baz', 'blong' ); #2
$arr_js           = array();               #3 | start collection
$arr_js['foo']    = $foo;                  #3 | extend collection ...
$arr_js['arrFoo'] = $arr_foo;              #3
$arr_js['null']   = null;                  #3
$arr_js['bool']   = true;                  #3
$arr_js['int']    = 0;                     #3
$arr_js['float']  = 0.123;                 #3

echo "<script>

/* make sure to declare your name space if you haven't already */
window.yourApp = window.yourApp || {};

/* #1 deploy your PHP variable as markup
don't forget to wrap variables properly if nessecary */
window.yourApp.foo = '$foo';

/* #2 if you are not sure if the PHP variable contains signs that must be escaped 
or have a non primitive type such as arrays then JSON is there to the rescue */
window.yourApp.arrFoo = " . json_encode( $arr_foo ) . ";

/* #3 if you have a lot of vars that you want to transfer to your JS you could
also collect them in an assoziative array and then deploy them all in one
as described above */
window.yourApp = " . json_encode( $arr_js ) . "; /* most convenient way IMHO */

console.log( window.yourApp );

</script>";

JavaScript文件

console.log( window.yourApp );


如何通过ajax获取PHP变量?

<?php $arr_js = array(
    'foo' => 'bar',
    'arrFoo' => array( 'bar', 'baz', 'blong' ),
    'null' => null,
    'bool' => true,
    'int' => 0,
    'float' => 0.123,
    'two way magic :)' => $_POST['yourApp']['coming from sender']
);
echo json_encode( $arr_js );
// lets assume the name of this file is "ajax-json.php"

JavaScript文件

// must be located in the same directory as "ajax-json.php" in this setup
// make sure jQuery is available!
jQuery.ajax({
    method: 'POST',
    url: 'ajax-json.php',
    dataType: 'json',
    data: {yourApp: {'coming from sender': 'pure awesomeness'}},
    success: function( response ) {
        console.log( response )
    }
})


  • json_encode()
  • JSON
  • jQuery.ajax()

上面的说明实际上是一个编辑!

<!-- HTML in a PHP file -->
<?php $clink = 'foo.php'; ?>

<script>
$( document ).ready(function() {
    function getLog() {
        ms = Date.now();
        var chatlink = "<?php echo $clink; ?>";

        $.ajax({
            url: chatlink+ms,
            dataType: 'text',
            success: function(text) {
                $("#chat").text(text, "<br />");
                setTimeout(getLog, 500); // refresh every half second
            }
        })
    }
}
</script>

这篇关于将PHP变量传递给JavaScript以在jQuery.ajax中使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆