的形式传递从选择“价值”与javascript中的PHP变量会发出

问题描述:

我想在选择从我的HTML表单通过JavaScript的形式传递从选择“价值”与javascript中的PHP变量会发出

<script type="text/javascript"> 
function changeDir(ID){ 
    var dir = document.getElementById(ID).value; 
    //For debuging purposes i've used an alert to show the value of dir on screen 
    //alert (dir); 
    //At this point of the function I want to assign the value of "dir" to the variable $folder 
    } 
</script> 
传递一个选项的值到PHP变量

还有我的.PHP与HTML

<SELECT name="course" ID="course" onchange='changeDir("course")' > 
     <OPTION value="artes>'">artes</OPTION> 
     <OPTION value="ingles">inglés</OPTION> 
</SELECT> 
<?php $folder= ...?> 

我用这与PHP上传lib下,都在同一个文件工作。 如果任何人可以解释我如何将选项的值分配给一个PHP变种将是伟大的。

感谢和问候。

+0

不能赋值到web服务器,当用户做了在浏览器后价值得到。此时,该页面已离开服务器,现在位于浏览器中,完全无法再对服务器执行任何操作。您的选择是ajax,套接字或重新加载页面,所有这些都会向您的服务器发出一个新请求,以实际将数据从浏览器发送回服务器。 – adeneo

+0

你不能用php。你可以用nodejs:P – evolutionxbox

您可以选择2种不同的方式。首先是AJAX,其次是重定向页面并获取<select>元素的值。

HTML:

<SELECT name="course" ID="course" onchange='changeDir("course")' > 
    <OPTION value="artes>'">artes</OPTION> 
    <OPTION value="ingles">inglés</OPTION> 
</SELECT> 

JAVA:

<script type="text/javascript"> 
function changeDir(ID){ 
var dir = $("course").val(); 
$.post("php_file.php", 
    { 
     posted_dir: dir 
    }, 
    function(data){ 
     $("id_of_result_elemnt").html(data); 
    }); 
    } 
</script 

PHP:

<?php 
$folder=$_POST['posted_dir']; 
echo "This text will be display in the element with id_of_result_elemnt ID"; 
?> 

其他方法是重定向

HTML + PHP:

<SELECT name="course" ID="course" onchange='changeDir("course")' > 
     <OPTION value="artes>'">artes</OPTION> 
     <OPTION value="ingles">inglés</OPTION> 
</SELECT> 
<?php if (iset($_GET['folder'])) 
{$_GET['folder']=$folder;}...?> 

JAVA:

<script type="text/javascript"> 
function changeDir(ID){ 
    var dir = document.getElementById(ID).value; 
    window.location = "http://example.com/myphp?folder=" + dir; 
    } 
</script> 

事实是,你不能。他们都生活在你的网页的不同部分。虽然您可以将它们写入同一个文件中,但所有PHP代码都在服务器端处理,Javascript无法从客户端看到任何内容。

您可以做的是将其作为AJAX请求传递给用户,以便获取一些信息以显示给用户,或者在用户通过提交表单更改选项时刷新页面,所以您不需要丢失表单的“状态”,然后在你的php块中验证是否有任何选项被选中。