簡體   English   中英

將PHP字符串作為javascript函數回顯的問題

[英]Problem echoing php string as javascript function

我正在使用Jaipho從自定義的Wordpress插件向移動圖庫顯示圖像。 使用Jaipho畫廊的wordpress主題通過WP-mobile-detector插件顯示。

我遇到的問題是當我使用php收集照片的URL來回顯要由javascript解析的函數時。 我從Safari的元素檢查器中獲取了生成的靜態javascript代碼,並將其粘貼到我的代碼中,注釋掉了php,它可在任何地方使用。 iOS的Safari似乎不喜歡php生成的javascript代碼。

  • HTML 5
    • <DOCTYPE html>
    • <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    • <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
  • PHP 5.2.6
  • WordPress的3.2.1

工作時間:

  • 用戶代理在Safari上設置為iPhone
  • 靜態代碼代替php生成的代碼

     $imageArray = $case->images_assc_array(); $i = 0; foreach($imageArray['views'] as $view_name => $view_images) { $before_img = $view_images['before']; $after_img = $view_images['after']; echo "dao.ReadImage($i,'".$before_img->medium_size()."','".$before_img->small_size()."','".ucfirst($view_name)." Before','".$case->description."');"; $i++; echo "dao.ReadImage($i,'".$after_img->medium_size()."','".$after_img->small_size()."','".ucfirst($view_name)." After','".$case->description."');"; $i++; } 

預期示例生成的輸出:

    dao.ReadImage( 0,'/wp-content/uploads/rmgallery_images/medium/408/before-front.jpg','/wp-content/uploads/rmgallery_images/small/408/before-front.jpg','Front Before','38 year old who underwent a tummy tuck.');  
    dao.ReadImage( 1,'/wp-content/uploads/rmgallery_images/medium/410/after-front.jpg','/wp-content/uploads/rmgallery_images/small/410/after-front.jpg','Front After','38 year old who underwent a tummy tuck.');
    dao.ReadImage( 2,'/wp-content/uploads/rmgallery_images/medium/409/before-side.jpg','/wp-content/uploads/rmgallery_images/small/409/before-side.jpg','Side Before','38 year old who underwent a tummy tuck.');
    dao.ReadImage( 3,'/wp-content/uploads/rmgallery_images/medium/411/after-side.jpg','/wp-content/uploads/rmgallery_images/small/411/after-side.jpg','Side After','38 year old who underwent a tummy tuck.');

您有一些不匹配的引號:

echo dao.ReadImage($i,'".$before...

echo "dao.ReadImage($i,'".$after...

等等。

試試這些:

echo 'dao.ReadImage('.$i.',"'.$before_img->medium_size().'","'.$before_img->small_size().'","'.ucfirst($view_name).' Before","'.$case->description.'");';
echo 'dao.ReadImage('.$i.',"'.$after_img->medium_size().'","'.$after_img->small_size().'","'.ucfirst($view_name).' After","'.$case->description.'");';

感謝@Marc B和@ linuxrules94提供的組合解決方案:

<?php
$imageArray = $case->images_assc_array();
$i = 0;

    foreach($imageArray['views'] as $view_name => $view_images):
        $before_img = $view_images['before'];
        $after_img = $view_images['after'];
    ?>

        dao.ReadImage(<?=json_encode($i);?>, <?=json_encode($before_img->medium_size());?>,<?=json_encode($before_img->small_size());?>,<?=json_encode(ucfirst($view_name));?> + " Before", <?=json_encode(stripslashes($case->description));?>);
        <? $i++; ?>
        dao.ReadImage(<?=json_encode($i);?>, <?=json_encode($after_img->medium_size());?>,<?=json_encode($after_img->small_size());?>,<?=json_encode(ucfirst($view_name));?> + " After", <?=json_encode(stripslashes($case->description));?>);
        <? $i++;
    endforeach; ?>

感謝大家!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM