Параметры загрузки JQuery () и PHP

Если я загружу страницу PHP с помощью Jquery .load (file.php), может ли включенный файл использовать переменные php, которые были определены на странице с именем load ()?

Related of "Параметры загрузки JQuery () и PHP"

Вы не понимаете, как все работает.

  • PHP запускается до того, как клиент выдаст какой-либо ответ на браузер, и весь код запускается на сервере . Переменные, объявленные в вашем файле PHP, уничтожаются после запуска всего кода PHP; они «исчезают».
  • JavaScript запускается после начала реакции браузера, и весь код запускается на клиенте . «Загружая» результат вывода файла PHP, вы не получите никакого доступа к переменным PHP, а только к выходу.

Если вы хотите перенести определенные переменные из PHP на JavaScript, вы можете вывести некоторый вывод в JSON в вашем PHP-скрипте, например:

<?PHP header("Content-Type: application/json"); $myVariable = "hello world"; echo json_encode(array(array("myVariable" => $myVariable))); /* Output looks like this: [ { "myVariable": "hello world" } ] */ ?> 

Ваш JavaScript / JSON должен выглядеть примерно так:

 $.getJSON("test.php", function(result) { console.log(result[0].myVariable); }); 

Имеет ли это смысл?

Нет, вам нужно передать переменные, которые вы хотите использовать, в файл file.php :

 $('#yourdiv').load('file.php?var1=xyz&var2=xyz&var3=xyz'); 

И тогда вы можете ПОЛУЧИТЬ их в файле file.php:

 $var1 = $_GET['var1']; $var2 = $_GET['var2']; $var3 = $_GET['var3']; 

Если имеется много переменных, используйте метод POST:

 $('#yourdiv').load('file.php', {var1:x, var2:y, var3:z}) 

А затем получите переменные в файле file.php:

 $var1 = $_POST['var1']; $var2 = $_POST['var2']; $var3 = $_POST['var3']; 

Да, используйте параметр данных, см. http://api.jquery.com/load/ :

 $('#someelement').load( "test.php", { 'key1': '<?php echo $value1; ?>', 'key2': '<?php echo $value2; ?>' } ); 

Параметры отправляются в файл test.php и доступны как:

 $_POST['key1'] $_POST['key2'] 

Вам нужно будет передать эти переменные в загруженный файл PHP через функцию .load.

Пример:

 $("#objectID").load("test.php", { 'choices[]': ["{$choice1}", "{$choice2}"] } ); 

Переменные, определенные в текущем файле PHP, станут частью Javascript, который загружает новый файл PHP.

переменная в скрипте PHP загружаемом JavaScript , отличается от страницы, загружающей скрипт PHP , поэтому ответ отрицательный.

но вы можете определить глобальные переменные или использовать супер глобальные переменные типа ( $_GET , $_POST и т. д.), чтобы получить то, что вы хотите.

Второй аргумент (params) функции загрузки JQuery должен быть объектом или функцией обратного вызова, но также может быть пустой строкой. В зависимости от этого загрузка отправляет сообщение или получает запросы.

У меня возникла идея автоматически переключаться между get и post (например, если набор файлов cookie), потому что get быстрее и кэшируется, а почта – больше.

Хуже всего писать функцию загрузки, включая контент внутри функции обратного вызова, дважды, чем писать что-то вроде этого:

 //get var url="cache_dir/my_bag.html"; var params=""; if(document.cookie){ //post url="post.php"; params="{my:bag}"; } $(selector).load(url,params,function(){ ... });