日期:2014-05-17  浏览次数:20585 次

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的需要。