Как объединить несколько переменных PHP в Javascript

0

Привет, я пытаюсь использовать геомонтаж внутри моего сайта, и у меня возникают проблемы с динамическим вытаскиванием адреса для ресторана и помещением его в мой javascript. Я использую метод get, чтобы вытащить restaurant_id из URL-адреса, а затем использовать его, чтобы вытащить полный адрес ресторана. Это строка кода, с которой у меня возникают проблемы (var destinationAddress):

$con=mysqli_connect("root","");
        $rest_id2=$_GET['id'];
        $rest_id=(int)$rest_id2;
        $sql="SELECT * from restaurant WHERE restaurant_id='".$rest_id."'";
        $result=mysqli_query($con,$sql);
        $rows=mysqli_fetch_assoc($result);
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script>
$(document).ready(function() {

    //exit early if no geolocation
    if(!navigator.geolocation) return;

    var destinationAddress = "<?php echo $rows['address'].$rows['city'].$rows['state'].$rows['zip']; ?>";
</script>
</head>
....

Кто-нибудь знает, что я здесь делаю неправильно?

  • 1
    Как должна выглядеть эта переменная после завершения рендеринга в PHP?
  • 0
    В чем ошибка / проблема?
Показать ещё 5 комментариев
Теги:
concatenation

3 ответа

0
Лучший ответ

Сделайте вашу жизнь проще: создайте адрес назначения вне шаблона:

$rows=mysqli_fetch_assoc($result);
if( $rows !== NULL )
{
    $destinationAddress = "{$rows['address']}, {$rows['city']}, {$rows['state']}, {$rows['zip']}";
}
else
{
    // no rows! (anomaly)
    $destinationAddress = "no destination address available";
}

// due to the way you'll later inject the variable
// into JavaScript code double quotes must be escaped

$destinationAddress = str_replace( '"', '\"', $destinationAddress );

Тогда просто

$(document).ready(function() {

    //exit early if no geolocation
    if(!navigator.geolocation) return;

    var destinationAddress = "<?=$destionationAddress?>";
} );
0

потому что вы забыли закрыть функцию }), попробуйте

<script>
$(document).ready(function() {

    //exit early if no geolocation
    if(!navigator.geolocation) return;

    var destinationAddress = "<?php echo $rows['address'].$rows['city'].$rows['state'].$rows['zip']; ?>";
})
</script>
0

Попробуйте добавить запятые и пробелы.

var destinationAddress = "<?php echo $rows['address'].$rows['city'].$rows['state'].$rows['zip']; ?>";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню