Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax的问题。如何将javascript变量转换为php变量?_Javascript_Php_Html_Ajax - Fatal编程技术网

ajax的问题。如何将javascript变量转换为php变量?

ajax的问题。如何将javascript变量转换为php变量?,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我想将javascript变量转换为php变量,以便在sql查询中使用它,但它不起作用 html代码: <select id = "dep_ID" name = "dep_ID" onchange="myFunction()"> <script> function myFunction(){ var xo = document.getElementById("dep_ID").value; document.getElement

我想将javascript变量转换为php变量,以便在sql查询中使用它,但它不起作用

html代码:

<select id = "dep_ID" name = "dep_ID" onchange="myFunction()">
<script>
    function myFunction(){

        var xo = document.getElementById("dep_ID").value;
        document.getElementById("demo").innerHTML = "You selected: " + xo;

        $.ajax({
            url: 'insert.php',                
            data: {duration: xo},
            type: 'POST',
            success: function(data) {
            alert(data);
            document.getElementById("demo").innerHTML = "You selected: " + <?php echo @$duration;?>;
            }
        });
    }
</script>
<?php
$duration = $_POST['xo'];
return $duration ;
?>

同一文件中的javascript代码:

<select id = "dep_ID" name = "dep_ID" onchange="myFunction()">
<script>
    function myFunction(){

        var xo = document.getElementById("dep_ID").value;
        document.getElementById("demo").innerHTML = "You selected: " + xo;

        $.ajax({
            url: 'insert.php',                
            data: {duration: xo},
            type: 'POST',
            success: function(data) {
            alert(data);
            document.getElementById("demo").innerHTML = "You selected: " + <?php echo @$duration;?>;
            }
        });
    }
</script>
<?php
$duration = $_POST['xo'];
return $duration ;
?>

函数myFunction(){
var xo=document.getElementById(“dep_ID”).value;
document.getElementById(“demo”).innerHTML=“您选择:”+xo;
$.ajax({
url:'insert.php',
数据:{duration:xo},
键入:“POST”,
成功:功能(数据){
警报(数据);
document.getElementById(“demo”).innerHTML=“您选择:”+;
}
});
}
insert.php代码:

<select id = "dep_ID" name = "dep_ID" onchange="myFunction()">
<script>
    function myFunction(){

        var xo = document.getElementById("dep_ID").value;
        document.getElementById("demo").innerHTML = "You selected: " + xo;

        $.ajax({
            url: 'insert.php',                
            data: {duration: xo},
            type: 'POST',
            success: function(data) {
            alert(data);
            document.getElementById("demo").innerHTML = "You selected: " + <?php echo @$duration;?>;
            }
        });
    }
</script>
<?php
$duration = $_POST['xo'];
return $duration ;
?>


我希望得到dep_ID变量的输出,但什么也得不到。

Javascript和PHP systax是不同的。在ajax调用的响应中,您将得到javascript对象。因此,您需要进行如下更改:

document.getElementById("demo").innerHTML = "You selected: " + data.duration;

PHP代码中的$duration变量未在包含javascript的HTML文件中定义

我认为您混淆了html页面生成之前发生的事情,混淆了我呈现的页面和用户选择值时发生的事情,混淆了ajax调用完成并执行insert.php后发生的事情

明确地说,这是:


在浏览器中发生任何事情之前执行,因此$duration未定义。

我想您想要的是
$\u POST['duration']
,而不是
$\u POST['xo']