2013-12-17 69 views
0

我想将我的JavaScript变量转换为php变量。当我单击链接时,我可以得到“1”的值,但是我想用PHP回显它,或者我想将它存储在PHP变量中。在同一页面上使用AJAX将Javascript变量传递给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> 

当我回应它时不显示。

谢谢。

+1

也许有人应该指出,js运行在客户端和服务器上的php。 – Hyperboreus

回答

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"); 
} 
?> 
+0

我该怎么办? – user3109628

+0

我更新了我的问题 –

+0

如果我将此代码放在sendEmail.php <?php $ userid = $ _POST [“toID”]; echo $ userid; ?> – user3109628

0

根据你的代码中传递一个用户ID阿贾克斯要求并获得另一个用户标识,做一件事,以实现:

<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); 
        } 
      }); 
    }); 
} 
+0

我的PHP代码会发生什么?回声呢?在ajax.php?如果是的话,我可以把邮件功能放在ajax.php上吗? – user3109628

+0

@ user3109628你的ajax.php文件在哪里?对于你使用'$ userid'? –

+0

因为你使用url:“ajax.php”所以即时通讯想知道什么是..即时通讯使用$ userid查询用户.. – user3109628