Эхо PHP в Google Map Javascript - PullRequest
       6

Эхо PHP в Google Map Javascript

1 голос
/ 01 марта 2010

Возможно ли (и если да, пожалуйста, объясните, как) преобразовать php в javascript, специально для моих целей я пытаюсь повторить ввод пользовательского поля с платформы wordpress в описание карты Google. Я надеюсь, что смогу дать клиенту серверный бэкэнд для ввода текста, который появляется в точках маркера на карте. То, что я пытаюсь безуспешно, это:

var point = new GLatLng(49.295308,-123.149297);
var marker = createMarker(point,"Site Title",'<div class="maptext"><p class="prepend-top caption">Title<\/p>

    <?php $the_query = new WP_Query('category_name=featured');
    while ($the_query->have_posts()) : $the_query->the_post();?>
    <?php if ( get_post_meta($post->ID, 'site-description', true) ) { ?>
    <?php echo get_post_meta($post->ID, 'site-description', $single = true); ?>
    <?php } ?>
    <\/div>')
          map.addOverlay(marker);

хорошо, сарфаз был прав с его оригинальным ответом, и я получал ошибку разбора, которая ее сломала. в итоге получилось так:

 var point = new GLatLng(48.134239,-122.764769);
      var marker = createMarker(point,"Port Townsend Marine Science Center",'<div class="maptext"><?php $the_query = new WP_Query('post_name=test-site');
while ($the_query->have_posts()) : $the_query->the_post();?><?php if ( get_post_meta($post->ID, 'map-content', true) ) { ?><?php echo get_post_meta($post->ID, "map-content", $single = true); ?><?php } ?><?php endwhile; ?><\/div>')
      map.addOverlay(marker);  

--- ОБНОВЛЕНИЕ ---

Просто хотел добавить, что я считаю, что это лучший способ для меня захватывать посты, так как я всегда хочу, чтобы конкретный был связан с этим маркером:

  var point = new GLatLng(48.5139,-123.150531);
  var marker = createMarker(point,"Lime Kiln State Park", 
    '<?php $post_id = 182;
$my_post = get_post($post_id);
$title = $my_post->post_title;
echo $title;
echo $my_post->post_content;
?>')
      map.addOverlay(marker);

Ответы [ 2 ]

1 голос
/ 01 марта 2010

Да, это, безусловно, возможно, чтобы php отображался в коде javascript. В вашем коде вы пропускаете endwhile, поэтому выполняется только первая последующая строка вашего кода, что приводит к неожиданному результату.

Обновление: Попробуйте его:

var point = new GLatLng(49.295308,-123.149297);
var marker = createMarker(point,"Site Title","<div class=\"maptext\"><p class=\"prepend-top caption\">Title</p>

    <?php $the_query = new WP_Query('category_name=featured');
    while ($the_query->have_posts()) : $the_query->the_post();?>
    <?php if ( get_post_meta($post->ID, 'site-description', true) ) { ?>
    <?php echo get_post_meta($post->ID, 'site-description', $single = true); ?>

    </div>")
          map.addOverlay(marker);
    ..................
0 голосов
/ 01 марта 2010

Я думаю, что проблема просто в новых строках, которые вы генерируете в строке JavaScript. Вывод кода будет примерно таким:

var marker = createMarker(point,"Site Title","<div class="\maptext\"><p class=\"prepend-top caption\">Title</p>
    thedatafromyourquery
    </div>")

то, что вы хотите получить, выглядит примерно так:

var marker = createMarker(point,"Site Title","<div class="\maptext\"><p class=\"prepend-top caption\">Title</p>" +
    "thedatafromyourquery" +
    "</div>")

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...