使用ajax传递PHP变量

时间:2015-02-25 04:55:22

标签: php jquery ajax


我正在尝试将page1.html中的php变量(其中包含我从其他表单获取的php变量)传递给page2.php使用ajax,但它不起作用,所以我需要你的帮助。

来自page1.php的

代码:

<script>
var url = 'page2.php';
$("#save").click( function() {
    $.ajax({
        url : url,
        type: 'post',
        data : {
            admin : <?php echo $admin; ?>,
            gname : <?php echo $gname; ?>,
            filename : docname,
            content : encodeURIComponent(editor.getValue())
        }
    });
});
</script>

数据filenamecontent已成功发送,但admingname未成功发送。

提前致谢。

更新

<?php
    if(isset($_GET['admin'])) {
    $admin = $_GET['admin'];
    }
    if(isset($_GET['gname'])) {
    $gname = $_GET['gname'];
    }
?>

此代码是我从我想要发送的php变量,从无关到另一个形式的问题。

6 个答案:

答案 0 :(得分:3)

在这里,伙计,用这个替换你的脚本代码。

<script>
var url = 'page2.php';
var admin = '<?php echo $admin; ?>';
var gname = '<?php echo $gname; ?>';
$("#save").click( function() {
    $.ajax({
        url : url,
        type: 'post',
        data : {
            admin : admin,
            gname : gname,
            filename : docname,
            content : encodeURIComponent(editor.getValue())
        }
    });
});
</script>

答案 1 :(得分:1)

您使用的是post类型,因此必须使用php中的$_POST

<强> PHP

<?php
    if(isset($_POST['admin'])) {
    $admin = $_POST['admin'];
    }
    if(isset($_POST['gname'])) {
    $gname = $_POST['gname'];
    }
?>

答案 2 :(得分:0)

您正在使用$_GET['admin'],它用于获取使用GET方法提供的参数。您应该使用$_POST['admin'],因为您已将POST设置为JS代码中的http请求类型。

答案 3 :(得分:0)

每个人都说你在混合POST和GET。但它抓住了另一件可能让你烦恼的事情。这些变量是字符串吗?如果他们是,也许你错过了撇号/单引号。

<script>
var url = 'page2.php';
$("#save").click( function() {
$.ajax({
   url : url,
    type: 'post',
    data : {
        admin : '<?php echo $admin; ?>',
        gname : '<?php echo $gname; ?>',
        filename : docname,
        content : encodeURIComponent(editor.getValue())
    }
});
});
</script>>

答案 4 :(得分:0)

您的以下代码

<?php
    if(isset($_GET['admin'])) {
    $admin = $_GET['admin'];
    }
    if(isset($_GET['gname'])) {
    $gname = $_GET['gname'];
    }
?>

将替换为

    <?php
    if(isset($_POST['admin'])) {
    $admin = $_POST['admin'];
    }
    if(isset($_POST['gname'])) {
    $gname = $_POST['gname'];
    }
?>

答案 5 :(得分:0)

使用get in PHP脚本时,您正在发送POST参数。另一个问题是你没有在ajax请求中使用带有 $ admin $ gname 变量的引号。
请尝试以下方法:

<script>
var url = 'page2.php';
$("#save").click( function() {
    $.ajax({
        url : url,
        type: 'post',
        data : {
            admin : '<?php echo $admin; ?>',
            gname : '<?php echo $gname; ?>',
            filename : docname,
            content : encodeURIComponent(editor.getValue())

        }
    });
});
</script>

PHP脚本:

<?php
    if(isset($_POST['admin'])) {
        $admin = $_POST['admin'];
    }
    if(isset($_POST['gname'])) {
        $gname = $_POST['gname'];
    }
?>

检查它是否对您有所帮助。