php 如何获取JS的值 ,新手折腾几天了 还请大侠赐教!
请问以下代码如何修改才能得到 $key 值
<script type="text/javascript"> TOP.api('rest', 'get', { //method:'taobao.taobaoke.items.convert', method : 'taobao.taobaoke.widget.items.convert', num_iids : '<?=$id?>', fields : 'num_iid,click_url,commission_rate' }, function(resp) { if(resp.error_response) { alert('taobao.taobaoke.widget.items.convert接口获取商信息品失败!' + resp.error_response.msg); return false; } var respItem = resp.taobaoke_items.taobaoke_item; for(var i = 0; i < respItem.length; i++) { abc=respItem[i].num_iid; } }) </script> <? $key="<script>document.write(abc);</script>"; echo $key; //请问大侠们如何修改这里才能得到值 感激不尽! ?>
------解决方案--------------------
没可能。PHP是服务器端语言,JS是浏览器端语言。apache先执行PHP代码,解析成HTML代码后下载到用户的浏览器,浏览器再执行JS语言进一步渲染。所以当你的代码运行先运行PHP,再运行TOP.api,等执行到<script>document.write(abc);</script>时,已经从apache断开。
------解决方案--------------------
楼上是正确的, 使用 AJAX 吧!!!
------解决方案--------------------
<script type="text/javascript"> TOP.api('rest', 'get', { //method:'taobao.taobaoke.items.convert', method : 'taobao.taobaoke.widget.items.convert', num_iids : '<?=$id?>', fields : 'num_iid,click_url,commission_rate' }, function(resp) { if(resp.error_response) { alert('taobao.taobaoke.widget.items.convert接口获取商信息品失败!' + resp.error_response.msg); return false; } var respItem = resp.taobaoke_items.taobaoke_item; for(var i = 0; i < respItem.length; i++) { abc=respItem[i].num_iid; } $.post('',{abc:abc},function(data){})//这里添加ajax请求 }) </script> <? if(isset($_POST['abc'])) { $abc = $_POST['abc']; echo $abc; } ?>
楼主可以根据ajax的这种方法来修改您自己的代码
------解决方案--------------------
其实,从客户端通过js取得数据,是可以通过某个事件驱动提交的,1种是ajax,另一种是在满足一定条件的时候触发提交,比如通过setTimeout,满足一定条件,触发submit提交。总之,能完成lz的需要。