2013-05-11 48 views
2

我知道客户端JavaScript和服务器端PHP之间的区别,并且需要将JavaScript发送回服务器以便再次检索,但我不确定如何去做这个。使用PHP回显javascript中的变量

假设一些琐碎的JavaScript代码的变量是基于用户的某些动态客户端活动创建:

var teststring = some selection 

我怎么能在PHP中发送和使用的TestString呼应其内容(可能使用ajax或其他东西),是否有可能在javascript所运行的同一个PHP页面上执行此操作?

我已经试过这样的事情在JavaScript:

$.ajax({ 
    url: "originalpage.php", 
    type: "POST", 
    data: { 
    teststring 
    } 
}) 

和这是JS正在操作的同一页originalpage.php:

var_dump($_POST['teststring']); 

它输出NULL。回声没有任何回应。

回答

3

POST参数需要的键名和键值,你需要的是以下几点:

$.ajax({ 
    url: "originalpage.php", 
    type: "POST", 
    data: { 
     'teststring': teststring 
    } 
)}; 
+0

这将为var_dump返回一个NULL,而对于echo则不返回任何值。更新代码 - > http://jsfiddle.net/2hGcs/,你能看到有什么问题吗? – user2372585 2013-05-11 10:51:23

+0

我觉得有一个混淆,当你第一次加载该php文件时,js代码没有被解雇,这就是为什么你没有得到任何POST值,那么js会触发,并且会在后台执行请求页面将形成正确的参数,并正确回复javascript调用。您可以将POST参数记录到您的应用程序记录器,然后查看第二次参数记录的方式,或者仅在我看到的ajax调用 – 2013-05-11 11:04:24

+0

中提醒您的响应,谢谢解释。我如何在第二次登录POST参数来查看字符串是否被正确接收? – user2372585 2013-05-11 11:56:23

0

试试这个代码,在我的电脑测试,一切工作正常。您只能在成功或错误内部读取PHP响应('echo')。

$.ajax({ 
    url: "originalpage.php", 
    type: "POST", 
    data: "teststring="+teststring, 
    success: function(response) { 
    alert(response); 
    } 
});