2014-01-24 50 views
1

我想將一個JS變量發佈到PHP腳本,但我無法做到。這裏有腳本,將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腳本的「選擇」變量(計算。 PHP)我收到的價值如下。

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

我在服務器端得到一個空值,即「calculate.php」。請告訴我這裏出了什麼問題?

回答

1

試試這個。

在Ajax調用

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

在calculate.php

使用$_POST['selection'];

+0

我使用if(isset($ _ POST ['selection'])在calculate.php中進行了檢查,並且在服務器端沒有收到數據,但是它顯示了關於選擇文本的警告信息,請幫助 – kmario23

+0

您在calculate.php中寫的代碼可以在這裏發佈 – Gowri

+0

爲什麼要發佈與其他內容/提案相同的答案已經發布了答案?如果它沒有爲那個答案工作,爲什麼它應該適合你的? – DontVoteMeDown

1

更改您data屬性:

data: { selection: encodeURI(selection) } 

然後,它會顯示在您的PHP腳本:

$_POST['selection'] 

此外,看你,如果條件在你的PHP腳本:

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

如果你想比較這些值,我認爲你應該使用==。如果不是,只需將其移出條件。

+0

仍然沒有成功獲取數據。仍然獲得空值。你有任何其他修復? – kmario23

+0

@ mario23更新了我的答案。 – DontVoteMeDown

+0

即使更新的東西不起作用。另外我在calculate.php中使用if(isset($ _ POST ['selection'])來檢查它,並且服務器端沒有收到數據,但是它顯示了關於選擇文本的警告消息,我很沮喪,Pl幫助 – kmario23