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