我从php代码中调用了一个js函数,并从js函数调用了它的返回值,但问题是在获取值后,如果我用该值添加一些数字,它不会显示我预期的结果。这是代码: -
<!DOCTYPE html>
<html>
<head>
<script>
function returnValue(){
document.getElementById("getVal").innerText=parseInt(5);
}
</script>
</head>
<body onload="returnValue()">
<?php
$val="<span id='getVal'><script>returnVal()</script></span>";
echo $val+2; //return 2 not 7;
?>
</body>
</html>
请帮忙。
答案 0 :(得分:0)
你不能以这种方式混合php和js,因为必须在发送html之前执行php,并且一旦用户收到html就会执行javascript。
我建议你使用ajax。这样你就可以将returnValue()值发送到php脚本,在那里你可以处理它,甚至将它的输出发送回javascript。
答案 1 :(得分:0)
您需要的是AJAX呼叫。我正在使用jQuery,但您也可以使用普通的java脚本,只需google语法。
您遇到的问题是JavaScript和PHP在不同的位置运行。
PHP在服务器上运行,客户端上运行JavaScript,因此PHP将在客户端到达html文件之前完成。客户端不了解PHP。
JavaScript和PHP之间的通信由AJAX Calls处理。如果您需要进一步解释,请查阅。
在Ajax代码的JavaScript代码下面:
var data = returnValue();
$.ajax({
type: "POST",
dataType: 'json',
url: yourfile.php,
data: {data : data}
})
.done(function(response){
//do something with your code like document.wirte(response)
})
.fail(function(jqXHR, textStatus, errorThrown){
alert('Error : ' + errorThrown); //Error handling
});
这里有一些PHP:
$value = $_POST['data'];
$value = $value +2;
echo $value;