我需要将javascript变量传递给php。这是code.this函数从下拉列表调用。
<script>
function functionname2(){
var ab = $("#ma").val();
var va= <?php $ab1=ad; echo TTable::model()->attr($ab1)?>;
if(va==='true')
{
var r=confirm("Press a button");
if (r==true)
{
x="You pressed OK!";
}
else
{
x="You pressed Cancel!";
}
}
}
</script>
任何人都知道怎么做吗?
答案 0 :(得分:4)
你不能:PHP生成你网页的HTML代码,当然包括javascript。
你向上帝传递一个论点吗?显然不是。
但是你可以祈祷,这就是为什么AJAX之后被创建的原因:使用异步调用,你可以要求javascript请求PHP服务并呈现结果而不重新加载整个页面。
如果你正在寻找的话,那么看看jQuery及其AJAX API,如果你想在没有太多痛苦的情况下使用它。
答案 1 :(得分:2)
你不能因为:
PHP在服务器端运行(如您的apache),而Javascript
在客户端(浏览器)运行。 PHP
解释器运行您的语句,例如echo '<table>....</table>'
,最后这些打印/输出都被发送到Web浏览器,因此它只包含您打印/输出的任何内容,但客户端没有PHP脚本。 Javascript
,html
无论服务器端是什么,在php的角度来看它们只是text
。
在客户端,你只会生成任何PHP而不是PHP脚本,所以你不能像javascript
那样传递给php
。现在,浏览器根据标签将该文本解释为点视图中的特殊文本。
但是,您可以使用javascript等技术与服务器上的其他php
脚本进行通信,这些技术可以动态地将数据发送到服务器上的php script
并将输出恢复。
例如,您可以通过数据库动态地将搜索查询发送到php并从服务器收回数据并通过ajax技术将其显示回浏览器。
为了进一步解释你必须做什么,你必须采取什么方法。需要有关您想要实现的目标的更多信息。
我希望它有所帮助。
答案 2 :(得分:0)
使用带有元素的表单并将其提交到PHP页面:
<form name="phpForm" action="" method="post" id="myForm" onsubmit="DoSubmit();">
<input type="text" name="confirmation" value="" />
</form>
在提交之前设置输入值:
if (r==true)
{
document.phpForm.confirmation.value = "You pressed OK!";
}
else
{
document.phpForm.confirmation.value = "You pressed Cancel!";
}
document.getElementById("myform").submit();