Мой файл javascript:
var ms = 3000; $.get("curl.php", { test: ms } );
Мой curl.php:
$ms = $_GET("test"); echo $ms;
Firefox firebug говорит:
Неустранимая ошибка: имя функции должно быть строкой в C: \ Users \ Jansu \ Documents \ workspace \ php \ curl.php в строке 2
В чем может быть проблема?
Еще лучше будет, когда javascript и php-код находятся в одном файле, поэтому мне не нужно публиковать / получать что-либо. Просто как-то передайте javascript на php.
Вы хотите []
, not ()
( docs ):
$ms = $_GET["test"];
Повторите свое редактирование:
еще лучше было бы, когда javascript и php-код находятся в одном файле, поэтому мне не нужно публиковать / получать что-либо. просто как-то передать javascript в php
Даже если они находятся в одном файле, они исполняются в совершенно разных местах. JavaScript выполняется на клиенте, PHP выполняется на сервере. Чтобы получить данные от клиента на сервер, он должен быть отправлен туда. Ajax (способ, которым вы это сделали) – это основной способ, которым вы это делаете, не вызывая полного обновления страницы, поэтому вы на правильном пути.
Вы не упоминаете, если вы дезактивируете свои данные отдельно, но функция filter_input более безопасна, чем прямое обращение к $ _GET.
Также POST обычно считается лучше, чем GET для вызовов AJAX, поскольку он не имеет одного и того же ограничения длины строки, немного более безопасного.
$ms = filter_input(INPUT_POST, 'test', FILTER_SANITIZE_STRING);
<script type="text/javascript"> var ms = 9000; function test() { $.ajax({ url: "a.php", data: {"test":ms}, type: 'get', success: function(output) { $('#testing').html(output); } }); } test(); </script> <?php $ms = $_GET["test"]; echo "$ms"; ?> <div id="testing"> </div>
Вы можете выполнить эхо-вывод в любом элементе HTML. Здесь я использую div.