PHP中的<script>部分的值怎么传递出来呢?

代码<?..............echo"$DH";.................?><HTML><scripttype="text/javascript">fu... 代码<?
..............
echo "$DH";
.................
?>
<HTML>
<script type="text/javascript">
function test1()
{
var a = "abc";
//alert(a);
$("#DH").val(a);

}
</script>
<HEAD>
<TITLE> 我的个人主页 </TITLE>
</HEAD>
<BODY>
<table>
<table class="TableBlock" align="center">
<form method="POST" onsubmit="test1();">
<tr class="TableHeader"><td>编号</td><td><input type="text" name=id value="<?=$DH?>"></td></tr>
<tr class="TableHeader"><td>操作</td><td><input type="submit" value="显示"></td></tr>
</form>
<table>
....................
为什么我点击了“显示”之后,PHP部分的echo和HTML部分的value="<?=$DH?>">都取不到值呢?
JS部分的值是如何传递到PHP和HTML部分的啊?!!!
初学者见谅,结合你的指导,我看了下示例程序,是不是能这样理解:实际上PHP和JS之间的交流大部分都是通过HTML转的?例如我用document.getElementById('dh').value = a给id=dh的某个标签(input type="text" id="dh" name="a" value="<?=$DH?>">
)赋值,然后再php部分有echo输出,但实际上echo输出的值并不是直接来自于js,而是根据表单中name为a的值?
展开
 我来答
gpgkd906
2010-12-09 · TA获得超过142个赞
知道答主
回答量:187
采纳率:0%
帮助的人:209万
展开全部
基本问题都没搞清楚。
PHP是服务器端,JS是客户端。
当你向服务器请求一个页面的时候,PHP就会接手处理页面逻辑,然后把结果发回来,也就是服务器应答了你的要求。当服务器传送完数据的时候,你和服务器之间的连接就中断了。
这个时候你的浏览器接到了服务器传送来的数据,然后才开始解析运行其中的JS代码。
到这里不知道你明白了没有?即PHP必然执行在JS之前。所以PHP可以很简单的同页面把值传递给JS,但是JS就不可能同页面把值传递给PHP。
但是你可以使用ajax,ajax实际上是JS对服务器又发起了新的请求,所以严格来说不能算同页面了。
------------------------------------------
不是。
首先HTML和javascript对于服务器端来说,都只是一段文本而已,不会进行任何逻辑处理,你能看到的所有网页,不是服务器展示给你看,而是服务器把这段文本发给你,然后你的浏览器处理之后展示给你看的。
而PHP程序则是一段逻辑处理,一般来说这个逻辑处理的结果是生成一段文本,然后服务器把这个动态生成的文本和原来的HTML,javascript文本一起发送给你的浏览器。

举例而言,我们来看看这段例文里面 value="<?=$DH>" 代表什么含义。
首先你必须了解<?php echo "hello world" ?>的含义。
PHP处理这一段逻辑的结果是动态生成一段文本并输出(echo)。
那么,假设$DH="hello world"
(源代码) value="<?=$DH>" ==> value="<?php echo “hello world” ?>" ==> value="hello world"(PHP处理结束,服务器开始发送文本数据)。
换句话说,对PHP来说,结果是HTML还是javascript它是不关心的,它只是输出一个文本而已。
所以你也可以用下面这种写法从PHP给javascript传值:
<script>
var sample=<?=$sample?>
</script>

回到你最开始的问题,关键在于$DH的值,如果你看懂了我上面说的这些内容,那么你就会明白这个值不可能来自HTML或者是javascript,必然是在更早之前在PHP中定义过。
faiy1314
2010-12-10 · TA获得超过149个赞
知道答主
回答量:78
采纳率:0%
帮助的人:69.1万
展开全部
楼主中的代码好像有几个地方都有问题的。
第一,$DH这个变量基本没值,无视掉了。
第二,楼主没有用到jquery的库,所以不要用$("#DH").val(a);这样的语法,改成
document.getElementById('abc').value = a;这样的。
第三,要显示的那个text没有id的属性,因为上面获取的时候要用到id的属性,如:
input type="text" id="abc" name="abc" value="<?=$DH?>">
第四,onsubmit没有加return 如:onsubmit="return test1();"
第五,JS中改成
function test1()
{
var a = "abc";
//alert(a);
document.getElementById('abc').value = a;
return false;//可以让表单不提交,才看得到text中显示出a值的abc,否则显示一下后就会跳转提交的
}

是根据表单中name为a的值提交后就是用POST或GET,你PHP部分用$a = $_POST['a']或$_GET['a']去接收。再说个,id和name最好是一样的,<input type="text" id="a" name="a" value="<?=$DH?>">
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b0026fc
2010-12-23 · TA获得超过8431个赞
知道大有可为答主
回答量:8845
采纳率:60%
帮助的人:1.7亿
展开全部
<input type="text" id="<?=$DH?>" name=id value="">

这样?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式