在同一页面上使用AJAX将Javascript变量传递给PHP变量

时间:2013-12-17 06:53:40

标签: javascript php jquery ajax

我想将我的javascript变量转换为php变量。当我点击链接时我可以获得“1”的值,但我想用PHP回显它,或者我想将它存储在PHP变量上。

这是我在同一页面上的Javascript和PHP代码。

<?php $userid = 1; ?>

<a href="#" onclick="sendEmail(<?php echo $userid; ?>)" > Send Mail </a>

<script type="text/javascript">
function sendEmail(userid){
    var sendID = userid;
        $(document).ready(function(){
                $.ajax({
                    type: "POST",
                    url: "ajax.php", 
                    data: { toID: sendID },
                        dataType: 'json',
                        cache: false,
                        success: function( toID ){
                        alert( toID ); }
                });
        });
}

<?php

$userid = $_POST["toID"];
echo $userid;

?></script>

当我回应它时没有显示。

感谢。

2 个答案:

答案 0 :(得分:2)

你不能这样做,因为你的 ajax请求转到另一个请求,你当前的php文件无法获取它。

yourFile.php -> Ajax Request -> yourFile.php
|                               |
|                               |-- here your $_POST['todID'] has the value, but it's other thread
|-- here your $_POST['toID'] is empty

更新1:您可以使用成功回调来显示结果或执行任何操作。

success: function( data ) {
  alert( data ); //<--- this have the result of your ajax request
  javaScriptVar = data;
}

更新2 :如果您需要在显示表单的同一文件中发送电子邮件,则需要放在首位:

<?php
if(isset($_POST['toID'])) {
 sendmail($_POST['toID'], "subject", "body");
}
?>

答案 1 :(得分:0)

根据您的代码,您将userid传递给ajax请求并获取另一个userID,做一件事就是实现:

<input type="hidden" name="userid" id="userid" value="<?php echo $userid; ?>">
<a href="#" onclick="sendEmail()" > Send Mail </a>

在你的js代码中:

function sendEmail(){
var sendID = $('#userid');
    $(document).ready(function(){
            $.ajax({
                type: "POST",
                url: "ajax.php", 
                data: { toID: sendID },
                    dataType: 'json',
                    cache: false,
                    success: function( toID ){
                        //alert( toID ); 
                        // update the userID
                        sendID(toID);
                    }
            });
    });
}
相关问题