JavaScript внутри PHP не работает

0

Извините, если мне не хватает чего-то очевидного, как "вместо", но я пробовал много разных способов, и он по-прежнему делает то же самое, то есть отображает фактический код javascript вместо функциональности, когда я помещаю его внутри. html или дает мне эту ошибку: Ошибка синтаксиса: ошибка синтаксиса, неожиданный "<" в E:\XAMPP\htdocs\website2\test.php в строке 9 Когда я помещаю его внутри php файла.

Здесь код:

<!DOCTYPE html>
<html>
<head>
    <script src="js.js" type="text/javascript"></script>
    <title>TEST</title>
</head>
<body>
<?php 
    echo '<script type="text/javascript">
    var https = require("https");
var username = "04d2ac7f76a0fbc0eee9dc5ef96b9259";
var password = "dc70ffc7ad911236bc2e0822855e2d42";
var auth = "Basic " + new Buffer(username + ':' + password).toString('base64');
var request = https.request({
    method: "GET",
    host: "api.intrinio.com",
    path: "/companies?ticker=AAPL",
    headers: {
        "Authorization": auth
    }
}, function(response) {
    var json = "";
    response.on('data', function (chunk) {
        json += chunk;
    });
    response.on('end', function() {
        var company = JSON.parse(json);
        console.log(company);
    });
});</script>'; 
?>
</body>
</html>
Теги:

4 ответа

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

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

Пример без php:

<!DOCTYPE html>
<html>
<head>
    <script src="js.js" type="text/javascript"></script>
    <title>TEST</title>
</head>
<body>
<script type="text/javascript">
    var https = require("https");
var username = "04d2ac7f76a0fbc0eee9dc5ef96b9259";
var password = "dc70ffc7ad911236bc2e0822855e2d42";
var auth = "Basic " + new Buffer(username + ':' + password).toString('base64');
var request = https.request({
    method: "GET",
    host: "api.intrinio.com",
    path: "/companies?ticker=AAPL",
    headers: {
        "Authorization": auth
    }
}, function(response) {
    var json = "";
    response.on('data', function (chunk) {
        json += chunk;
    });
    response.on('end', function() {
        var company = JSON.parse(json);
        console.log(company);
    });
});</script>
</body>
</html>

Пример с php:

<!DOCTYPE html>
<html>
<head>
    <script src="js.js" type="text/javascript"></script>
    <title>TEST</title>
</head>
<body>
<?php 
    echo '<script type="text/javascript">
    var https = require("https");
var username = "04d2ac7f76a0fbc0eee9dc5ef96b9259";
var password = "dc70ffc7ad911236bc2e0822855e2d42";
var auth = "Basic " + new Buffer(username + ':' + password).toString(\'base64\');
var request = https.request({
    method: "GET",
    host: "api.intrinio.com",
    path: "/companies?ticker=AAPL",
    headers: {
        "Authorization": auth
    }
}, function(response) {
    var json = "";
    response.on(\'data\', function (chunk) {
        json += chunk;
    });
    response.on(\'end\', function() {
        var company = JSON.parse(json);
        console.log(company);
    });
});</script>'; 
?>
</body>
</html>

Но более важным является код node.js, а не javascript на стороне клиента. Я рекомендую вам получить узел и JavaScript учебники.

  • 0
    Извините, но я делаю что-то не так, если при использовании вашего кода я получаю пустую страницу? За оба ваших ответа ... Спасибо.
  • 1
    Тег script не виден, вам нужно использовать Инструменты разработчика (F12 в Chrome), чтобы увидеть сценарии и вывод console.log.
Показать ещё 2 комментария
0

Функция Echo используется для вывода строки, и вы повторяете оператор кода, который не является допустимой строкой. Поместите это как в одной строке так:

<?php echo '<script type="text/javascript">var https = require("https");var username = "04d2ac7f76a0fbc0eee9dc5ef96b9259";var password = "dc70ffc7ad911236bc2e0822855e2d42";var auth = "Basic " + new Buffer(username + ':' + password).toString(\'base64\');var request = https.request({method: "GET",host: "api.intrinio.com",path: "/companies?ticker=AAPL",headers: {"Authorization": auth}}, function(response) {var json = "";response.on(\'data\', function (chunk) {json += chunk;});response.on(\'end\', function() {var company = JSON.parse(json);console.log(company);});});</script>';?>
0

Вы правы, подозревая, что вы разместили "и" в ненадлежащих местах, не убегая, как указал Иван.

<!DOCTYPE html>
<html>
<head>
  <script src="js.js" type="text/javascript"></script>
  <title>TEST</title>
</head>
<body>
<?php 
  echo '<script type="text/javascript">
  var https = require("https");
  var username = "04d2ac7f76a0fbc0eee9dc5ef96b9259";
  var password = "dc70ffc7ad911236bc2e0822855e2d42";
  var auth = "Basic " + new Buffer(username + \':\' + password).toString(\'base64\');
  var request = https.request({
    method: "GET",
    host: "api.intrinio.com",
    path: "/companies?ticker=AAPL",
    headers: {
      "Authorization": auth
    }
  }, function(response) {
    var json = "";
    response.on(\'data\', function (chunk) {
      json += chunk;
    });
    response.on(\'end\', function() {
      var company = JSON.parse(json);
      console.log(company);
    });
  });</script>';
?>
</body>
  • 0
    Сколько из того же ответа нам нужно?
  • 0
    Спасибо, но когда я пробую ваш код, он ничего не отображает - пустая страница.
0

Вам следует избегать "in with" в вашем коде.

Ещё вопросы

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