繁体   English   中英

通过ajax将参数传递给请求并用php打印

[英]Passing parameter to request via ajax and printing it with php

我在index.php中:

<script type="text/javascript">

    var chosenCity = 'London';

    (function($) {

        var formData = new FormData();

        formData.append("city", chosenCity);

        var xhr = new XMLHttpRequest();
        xhr.open("POST", "index.php");
        xhr.send(formData);     

    })(jQuery);


</script>

我想在页面中打印selectedCity的值,所以我这样做:

<?php 
    $var = $_REQUEST['city'];
    echo $var;
    print_r($_POST);
    print_r($_REQUEST);
?>

但是什么也没打印。

使用php调试器,我可以看到$ var在fisrt调试会话中的第一次加载时包含null。

在第二个调试会话中, $var包含'London' ...尽管如此,即使在第二个会话之后也没有输出任何内容。

尝试打印$_POST$_REQUEST发生同样的情况

我尝试了不同的环境和浏览器

我究竟做错了什么?

还有其他方法吗?

暂时忽略jQuery,以下工作正常,这表明您用于发送XHR请求本身的javascript代码很好。

    <?php
        /* 

            "/test/target.php" ~ equivilent of index.php

        */
        ob_clean();
        print_r($_POST);
        exit();
    ?>


    function _ajax( chosenCity ){
        var fd = new FormData();

        fd.append('city', chosenCity);
        fd.append('section','baselevel');

        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            if( xhr.readyState==4 && xhr.status==200 ) console.info( 'Response: %s',xhr.response );
        };
        xhr.open( 'POST', '/test/target.php' );
        xhr.send( fd );     
    }

    document.addEventListener( 'DOMContentLoaded', function(){ _ajax.call(this,'london') }, false );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM