我有这个JavaScript函数,它从HTML中的select选项中获取值:
<script type="text/javascript">
function showUser(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var str=xmlhttp.responseText;
var splitstr=str.split('||');
document.getElementById("txtHint").innerHTML=splitstr[0];
document.getElementById("txtval").innerHTML=splitstr[1];
}
}
xmlhttp.open("GET","getdetails.php?q="+str,true);
xmlhttp.send();
}
</script>
现在,str
是我想要获取其值并将其放入PHP变量的JavaScript变量。
我正在使用它,但它不起作用:
$grade = "<script language=javascript>document.write(str);</script>";
echo $grade;
这样做的正确方法是什么?
答案 0 :(得分:0)
PHP
在Web服务器上运行,因此只有在页面加载时才会执行。因此,上面的语句将不起作用,因为它在页面加载后调用的函数中运行。
要实现您想要的功能,您可以通过ajax调用将str发送到php文件并将其存储在会话变量中。 &安培;然后,当你需要变量时,调用另一个将检索会话值的ajax函数。
答案 1 :(得分:0)
您可以使用jQuery来处理AJAX调用。 确保在html页面中包含此行。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
使用javascript调用PHP并发送str数据。
function uploaddata(str) {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
var fd = new FormData();
fd.append('data1', str);
try {
$.ajax({
url: 'dosomething.php',
data:fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
var response = $.parseJSON(data);
if (response.code !== '0'){
alert(response.description);
}
else {
alert(response.description);
};
},
error: function(jqXHR, error, errorThrown) {
alert(jqXHR.responseText);}
});
}
catch (ex) {
}
}
在服务器端创建dosomething.php将完成您需要的过程。
<?php
// get your data at server side
str = $_POST['data1'];
// do processing
// return answer to browser
$ans = ['code' => '0', 'description' => 'Everything are ok'];
echo json_encode($ans);
return;
?>
在您的javascript中,将激活成功部分,您可以使用代码和说明来构建逻辑。