2015-01-30 3 views
0

Я загружаю изображения (точечные точки) на карту, и если вы нажмете на них, они загружают URL-адрес видео в БД. Когда я загружаю изображения с помощью PHP, я называю их идентификаторы соответствующим индексом в MySQL, поэтому я могу поговорить с ними, когда я нажимаю на изображения и прикрепляю к ним действие, чтобы загрузить правильный URL-адрес видео.Dumping PHP echo в jQuery

По какой-то причине PHP разбивает код.

<div id="satmap-div"> 
        <div> 
         <?php 
          $sql = "SELECT * FROM btring_content"; 
          $n = 1; 

          $result = $objCon->query($sql) or die('error in query:' . mysqli_error($objCon)); 

          while($row = mysqli_fetch_assoc($result)) { 
          echo "<img id=" . $row['id'] . " class='pinpoint' src='img/pp.png'/>"; 
         ?> 


         <script> 
          $("#satmap-div .pinpoint:nth-child(" + (<?php echo (string)$n?>) + ")").css({ "left": <?php echo (string)$row['leftPos']?>, "top": <?php echo (string)$row['topPos']?> }); 
         </script> 

         <?php 
          $n++; 
          } 
         ?> 
</div> 

     <img id="satmap" src="img/bigmap.gif"/> 


       </div> 

$('#satmap-div > div').children('img').click(function() { 
         var index = $(this).attr('id'); 
         <?php 
          $sql2 = "SELECT * FROM `btring_content` WHERE  `id`=18"; 
          $result2 = $objCon->query($sql2) or die('error in query:' . mysqli_error($objCon)); 
          $row2 = mysqli_fetch_array($result2); 
         ?> 
         $("p").text(<?php echo (string)$row2['link']?>); 
        }); 
+1

отображение любых ошибок? – wayzz

+0

Добавьте сообщение об ошибках в начало вашего файла (ов) сразу после открытия тега '

+0

вы можете опубликовать вывод html после запуска скрипта? – Stu

ответ

0

Изменение:

$("p").text(<?php echo (string)$row2['link']?>); 

к

$("p").text("<?php echo (string)$row2['link']?>"); 

При отображении строки с помощью функции .text() всегда qoute.

0

Вы используете следующую строку в коде:

echo "<img id=" . $row['id'] . " class='pinpoint' src='img/pp.png'/>"; 

Это фактически означает, что ваш код будет оказывать следующие:

<img id=3 class='pinpoint' src='img/pp.png'/> 

Как вы можете видеть, вам не хватает котировки около id. Попробуйте использовать следующий код вместо:

echo "<img id='" . $row['id'] . "' class='pinpoint' src='img/pp.png'/>"; 

Кроме того, ваши <script> также недостающие ; в PHP эхо заявления:

<script> 
     $("#satmap-div .pinpoint:nth-child(" + (<?php echo (string)$n?>) + ")").css({ "left": <?php echo (string)$row['leftPos']?>, "top": <?php echo (string)$row['topPos']?> }); 
    </script> 

изменить его на:

<script> 
     $("#satmap-div .pinpoint:nth-child(" + (<?php echo (string)$n?>) + ")").css({ "left": <?php echo (string)$row['leftPos']; ?>, "top": <?php echo (string)$row['topPos']; ?> }); 
    </script> 
+0

Редактировать: Я вижу, что Джо Свинделл также указал на это в комментариях. –

+0

afaik, цитаты не нужны, если значение - чистое целое число. Не уверен, хотя. Я всегда получаю двойные кавычки в html. – Forien

+0

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