1
var xmlhttp;
if (window.XMLHttpRequest) {
    xmlhttp=new XMLHttpRequest();
}
else {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.open("POST","test.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("abc=123");

xmlhttp.onreadystatechange = function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {

        <?php if(isset($_POST['abc'])) {
            $test123 = 'worked';
        }
    ?>

}}
var worked = '<?php echo $test123;?>'; // <--- this is not working

どうすればこれを機能させることができますか?get メソッドを使用するか post メソッドを使用するかに関係なく、PHP で変数を受け取りません。

4

2 に答える 2

1

さらに、@Explosion Pills の説明に加えて、これは ajax 内の php が期待どおりに機能しないことを意味します。

test.php 内の場所にこれを置きます:

<?php if(isset($_POST['abc']))
{
$test123 = 'worked';
}
echo $test123;
?>

次に、そこにあるコードでこれを置き換えます:

 <?php if(isset($_POST['abc']))
{
$test123 = 'worked';
}
?>

に:

 var worked = xmlHttp.responseText;

最後に、この最後の行を削除します。

 var worked = '<?php echo $test123;?>';

そして、何が起こるかをチェックしてください。

于 2013-05-21T19:04:45.583 に答える