我正在尝试将一个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”。请告诉我这里出了什么问题?
答案 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'];