文件名是index.php
<script>
var linka;
linka=window.location.href;
</script>
<?php
$ch[0]="<script>document.write(linka);</script>";
echo $ch[0]."<br />";
<script>
到这步为止,php获得js的变量非常顺利
下面接着
<script>
var k;
k="<?php echo $ch[0];?>";
alert(k);
</script>
为什么输出是"alert(k);",而不是k的值?求解释
ä½ å¥½phpæ¯æå¡ç«¯èæ¬è¯è¨ï¼jsæ¯æµè§å¨ç«¯èæ¬è¯è¨ï¼é¤é使ç¨ajaxè¿è¡æ°æ®æ交å¦åï¼ä¸ä½æå¡ç«¯çæ好页é¢ä¼ å°æµè§å¨ç«¯åå°±ä¸ååä¸æµè§å¨ç«¯çâè¿ç®âï¼æä»¥ä½ æ³å¨åä¸ä¸ªé¡µé¢ä¸ä¸éæ°è¿è¡è¯·æ±å°±jsåphpç¸äºè·åå¼æ¯ä¸ç°å®çã
å¦ï¼
ä½ ç代ç åæå¦ä¸ï¼
<script>å
¶å®ä½ çæ´ä¸ªé¡µé¢é½æ¯phpçï¼æ§è¡
è¿ä¸å¥çæ¶åï¼phpç$ch[0]ä»
ä»
åªæ¯è¢«èµäºäº"<script>document.write(linka);</script>"è¿ä¸ªå符串,js代ç 并没æè¿è¡.phpä¹å¹¶æ²¡æè·å¾jsçåé!è·å¾çåªæ¯å符串èå·².
äºå®ä¸$ch[0]被èµäºç并ä¸æ¯å符串ï¼ä½ å¯ä»¥èªå·±æ¾ä¸ªç¯å¢è¯è¯ã
å 为æ°æµªä¸ä¸çå¾®å认è¯ä¼ä¼ éç»ç½ç«é¦é¡µå¸¦åæ°çurlï¼åä¸å®è¦å¨ç½ç«é¦é¡µè°ç¨ä¸ä¸ªjsåç认è¯å½æ°ï¼æ以æä¼å«éº»ç¦ççè½ä¸è½åå¨ä¸èµ·ã
ç»ä½ çè¿ä¸ªç¨åºçä¸é¨åï¼åç»ä½ ççè¿è¡ææï¼
å¯è§å¨phpä¸å°jsåphpæ··åæ¯å®å ¨æ²¡æé®é¢çã
è¿é¨åï¼å®é ä¸ç¨phpçææ¯å¤æ¤ä¸ä¸¾ã
å ä¸ºä¼ å°æµè§å¨ç«¯æ¶è¾æ¯
<script>document.write(linka);</script>ç´æ¥å°±å
<script>document.write(linka);</script>
ä¸éè¦æ¾å°phpéï¼å°±è½å®ç°ã
phpå¨æå¡ç«¯è®²"<script>document.write(linka);</script>"è¿ä¸ªå符串èµå¼å°$ch[0]ï¼åé¢å°±è¾åº$ch[0]ä¹å°±æ¯"<script>document.write(linka);</script>"è¿ä¸ªå符串å°æµè§å¨ç«¯é¡µé¢åï¼æç±æµè§å¨ç«¯æ¥æ§è¡document.write(linka).
ä¸æ¯è¯´ä¸è½phpåJSè½æ··åå°±å¯ä»¥å¨åä¸é¡µé¢ä¸åªéè¿è¿è¡äº¤äºãèæ¯phpåjsçæ§è¡ç¯å¢ä¸ä¸æ ·ï¼ä¸ä¸ªå¨æå¡ç«¯ï¼ä¸ä¸ªå¨å®¢æ·ç«¯ãè¦æ³å¨æå¡ç«¯è·åæµè§å¨ç«¯çæ°æ®ï¼åå¿ é¡»æâ请æ±ââåºçâçè¿ç¨ã
<script>è¿ä¸æ®µä¼ å°æµè§å¨ç«¯åå°±æ¯ï¼<script>
var k;å¦è¯·æ³¨æï¼é¡µé¢å¨æå¡ç«¯çæä¹åï¼è¦æ³ååæå¡ç«¯ï¼è¿éå³ä½ çphpç¨åºï¼äº¤äºï¼åå¿ é¡»è¦éè¿å次ç请æ±æè¡ãè¿ç¹ï¼å¯ä»¥å»è¡¥ä¸ä¸B/S模å¼çè¿è¡æºå¶ã
è¦ä»æµè§å¨ç«¯ç页é¢ä¸ä¼ æ°æ®ç»æå¡ç«¯ç¨åºï¼å»ºè®®è¿æ¯éè¿ajaxè¿è¡ï¼å¦æä¸ç¨ajaxå°±ç¨éèçiframeåµå ¥é¡µé¢å¹¶å°æ交æ°æ®ç®æ æå该iframeï¼ç¶åå¨è¿åç»iframeç代ç é使ç¨parent对象ä¸ç¶é¡µé¢äº¤äºã
新浪调用应用时会给你注册应用的实际链接post一点信息
专业版应用框架会GET给您的应用以下信息:
cid
viewer
sub_appkey
tokenString
但是添加授权也必须在注册应用的这个链接的页面,程序是新浪的JS程序!
通过ajax可以解决这个问题,但是能否把两者写在一起呢?
参见对另一位的追问,只是js变量获取php变量的时候有点问题.
不用ajax的话,你就用隐藏的div,然后通过js获取div中的php传下来的$ch[0]
首先要明白,javascript和php是2门不同的程序语言,他们运行的环境截然不同
javascript的环境是浏览器,php的环境是服务器
二者是不能直接进行数据交换的,但是我们可以架设一个桥梁来实现,这里先给几个方法,希望能达到抛砖引玉的效果
最常用的大概要属ajax了,这里js向php发送的,和php向js回应的都是字符串类型的数据,这些字符串可以根据需要被转换成不同类型(对象,数字,bool值)。
把php输入到html中,js通过dom节点来访问和修改这些值,至于php如何接收这些值,不是直接丢到form里,get或post过去就结束了么?
极端情况的话,也可以直接把php的值输出到js代码里。
例如 var a = '<?php echo $v;?>';
php照样通过一个表单提交来获取他们。