2012-03-06 50 views
0

我的页面混合使用Javascript和php。 Javascript被用来从几个选择中选择一个字符串。然后一些php代码需要对这个字符串做些什么。如何在同一页上将Javascript字符串传递给php

我已经看到一些似乎在讨论在不同网页上传递变量的例子。我只是在一页上完成这一切,我试图传递的是一个字符串。

我想另一种解决方案是使用PHP来选择字符串,如果这是可能的?

+0

所有你想做的事就是从pageA传递一个字符串到pageB? 您应该尝试将该字符串作为“URL的一部分”或“POST请求”发送,或者在最糟糕的情况下使用“cookies”。 – 2012-03-06 21:00:15

+1

如果你解释字符串是什么以及你想用它做什么,你可能会得到更好的答案。 JS和PHP是否在同一页上并不重要。首先执行PHP,然后将结果(文本)发送到浏览器,并将其评估为JavaScript和HTML。 – 2012-03-06 21:02:15

+0

将一个JavaScript变量传递给PHP的唯一方法是向PHP脚本发送一个POST或GET方法,但这不能在没有重新加载页面的情况下完成。如果你这样做的话,你可能只需要使用PHP从页面上的表单元素获取输入''<?php $ example = $ _ POST ['example_form_name'];''。否则,您可能需要更详细地描述脚本。 – 2012-03-06 21:02:36

回答

4

当浏览器呈现页面时,PHP已完成作业并关闭连接。

要传递一些在客户端使用js确定的值,您需要一个新的请求。这意味着你需要使用Ajax。

+0

下面的回答者展示了如何在没有Ajax的情况下做到这一点? – 2012-03-06 21:07:57

+0

当他说“你需要通过JavaScript向服务器发送请求”时,他的意思是AJAX。 – bfavaretto 2012-03-06 21:11:17

1

您需要通过JavaScript向服务器发送请求,因为PHP是服务器端语言。您可以使用POST或GET变量将字符串发送到同一页面,然后添加PHP代码以在页面加载时检查该变量。

的PHP会是这样的:

if(isset($_POST['string'])) { 
// do something with the string 
} 
+0

此方法不使用Ajax? – 2012-03-06 21:27:23

+0

你可以这样做,一个页面重新加载或通过AJAX。尽管如果你使用AJAX来做,你可能想要分开处理字符串的PHP代码,只是为了清楚起见。 – 2012-03-07 15:35:14

2

PHP解析数据的服务器端(前的页面加载),而JavaScript的上页面加载处理一切浏览器端(后)。你不可错过的JavaScript到PHP的功能,除非你使用AJAX来发送PHP脚本变量:

的JavaScript

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> 

<script type="text/javascript"> 
    // Find whatever string you need 
    var something = $('.input').val(); 

    $(function() { 
     $.ajax({ 
     url: '/path/to/php_script.php', 
     type: 'POST', 
     data: 'variable='+something, 
     success: function(data) { 
      $('.display_div').html(data); 
     } 
     }); 
    }); 

</script> 

PHP

$something = $_POST['variable']; 

// Do something with it 
echo strlen($something); 
+0

什么是php_script.php?这是所有代码所在页面的名称吗? – 2012-03-06 21:06:09

+1

php_script.php只是我编写的一个示例PHP文件。你需要把所有修改你的字符串的PHP放到这个单独的文件中 – hohner 2012-03-06 21:07:21

+0

那么在你的例子中,那个PHP代码会进入其他文件? – 2012-03-06 21:12:34

相关问题