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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的<script>部分的值怎么传递出来呢?相关的知识,希望对你有一定的参考价值。

代码<?
..............
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的值?

基本问题都没搞清楚。
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中定义过。
参考技术A 楼主中的代码好像有几个地方都有问题的。
第一,$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?>">
参考技术B <input type="text" id="<?=$DH?>" name=id value="">

这样?本回答被提问者采纳

JS的变量的值怎么传递给PHP的变量?

get:

<script>
name="xxx";
window.location=‘xxx.php?name=‘+name;
</script>

post:

<script>
name="xxx";
</script>
<form name=form1 method=post onsubmit="this.name.value=name">
<input type=hidden name="name">
</form>

以上是关于PHP中的<script>部分的值怎么传递出来呢?的主要内容,如果未能解决你的问题,请参考以下文章

js中怎么显示一个变量的值

如何取HTML中的select中的值

php如何拿到javascript的值

如何在js中调用php?

js php 互调

PHP中怎么才能调用JS文件里的一个函数!