将JS变量发布到PHP脚本的问题

时间:2014-01-24 10:40:18

标签: javascript php ajax jquery post

我正在尝试将一个JS变量发布到PHP脚本,但我无法做到。这是脚本,

以下JS嵌入在名为“check.php”的脚本中,

<script type="text/javascript">
$(document).ready(function() {
$('#content-area').mouseup(function() {
 var selection = getSelected();
  if(selection && (selection = new String(selection).replace(/^\s+|\s+$/g,''))) {
     alert('Sending the following text to the server via AJAX: ' + selection);
            $.ajax({
             type: 'post',
             url : 'calculate.php',
             data: 'selection=' + encodeURI(selection)  
            });
     }
   });
   });  
</script>  

我使用ajax发布“选择”变量 PHP脚本(calculate.php)我收到的值如下。

<?php
    if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
      strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' &&  
      $selection = trim($_POST['selection'])) {
        $selText = $selection;
       }
?>

我在服务器端得到一个空值,即“calculate.php”。请告诉我这里出了什么问题?

2 个答案:

答案 0 :(得分:1)

data属性更改为:

data: { selection: encodeURI(selection) }

然后它将在您的PHP脚本上显示为:

$_POST['selection']

此外,请查看PHP脚本中的if条件:

$selection = trim($_POST['selection'])

如果您想比较这些值,我认为您应该使用==。如果没有,只需将其移出条件。

答案 1 :(得分:1)

尝试一次。

在ajax电话中

$.ajax({
            type: 'post',
            url : 'calculate.php',
            data: { selection : selection},
          });

在calculate.php中使用$_POST['selection'];

获取您的数据