Вставить PHP в div с Jquery (.html)


Я div, который будет получать содержимое, у меня есть вертикальное меню, которые будут определять содержание, что так и будет. Проблема, что он делает .load() файл, но он загружает даже там, где появляется

Пробовал через .html(), и положить include .php, он пока не делает, но дает ту же проблему. Не считывает информацию после того, как PHP. Пытался написать страницу в .html(), но это также не работает, я сделал исправления, двойные кавычки с обратной косой черты (\") и не работать.

библиотек офицеров не получил ответ, если вопрос с Базой Данных и PHP. но я не могу понять, почему не работает.

Мой код немного большой, так как являются несколько ссылок и содержание длинных, сделал так, например, сокращены, потому что я думаю, что проблема-это концепции, а не синтаксис.

  • проблема не в PHP и MySQL, потому что, если я открываю страницу, только, за пределами jQuery, работает тихо, поднимает все данные.

  • база jQuery, и соединение с MySQL уже делаются и работают, не ставлю, чтобы не заполнить кода бесполезно.

JQuery:

<script type="text/javascript">
$(document).ready(function() {
$("#link1").click(function() {
$("#conteudo").html("Aqui vai o conteúdo do Link 1, via HTML mesmo, pois não tem PHP.. Esse aqui funciona normalmente!");
});
$("#link2").click(function() {
$("#conteudo").load('link2.php');
});
});
</script>

HTML

  <a href="#link1" id="link1">Link 1</a>
  <a href="#link2" id="link2">Link 2</a>

  <div id="conteudo">Este conteúdo é para ser alterado, conforme o usuário vá clicando no link... O link 1 funciona normal, pois não tem php, o link 2 funciona até aparecer o PHP...</div>

PHP (ссылка2.php)

  <?php
$query = @mysql_query("SELECT * FROM dados;");
while($linha = @mysql_fetch_array($query)) { ?>
<p><?php echo $linha['nome']. " - ". $linha['sobrenome']; ?> 
<a href="imagens/foto.jpg">Veja a foto</a>
</p>
<?php } ?>
Author: Maniero, 2014-04-07

3 answers

TL;DR - Включить файлы php, которые определяют соединение link2.php. В .load() jQuery будет работать только тогда, когда вы можете сделать запрос, прямой link2.php и получить фрагмент html желаемого.

Ты понять две вещи. Интерпретация строки PHP server-side (include) с ajax функции client-side.

Метод loadjQuery ожидает, что link2.php вернитесь страницу или фрагмент html. В случае, если link2.php сами по себе не производит ничего, просто завершает работу (@) из-за отсутствия активного подключения.

Request 1 -> Pagina 1 -> Request 2 -> link2.php (sem conexão) = Falha silenciosa

То, что вам нужно сделать, это создать страницу link2.php, который работает на себя (то есть, возвращать результаты, когда request производится непосредственно через браузер). Для этого вы должны включать в себя код для подключения базы, и все, что потребуется, чтобы распечатать результаты.

Убедитесь, что эта функция отличается от require include; эти делают все на стороне сервера:

Request 1 -> 
    Pagina 1, cria conexões etc
        include 'link2.php'
            usa conexão "definida" na página 1
<- Servidor interpreta o conjunto e navegador recebe uma resposta HTML unificada

В Этом случае не существует, второй request, контент - link2.php интерпретируется вместе с содержимым текущей веб-страницы на сервер, как если бы он был больше, чем кусок PHP-кода в теле страницы. Браузер не есть наука, что это два отдельных файла.

 3
Author: Anthony Accioly, 2014-04-19 22:13:42

Попробуйте использовать приложения, такие как firebug, чтобы debugar сделки и проверить, если вы получаете данные правильно во время запроса, сделанные с помощью jQuery.

Попробуйте следующий пример:

<script type="text/javascript">
$(document).ready(function() {
   $("#link2").on('click', function(){
      $.get("link2.php", function( data ) {
        $('#conteudo').html(data);
      });
   });
});
</script>
 2
Author: hamboldt, 2014-04-07 20:16:06
    //menu.php
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script src="jquery-1.11.0.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function Load(View){
            $("#carregar").html('Carregando ...');
            $("#carregar").load(View);
        };
        $(document).ready(function(e) {
            $("#a1").click(function(e) {
               Load('page1.php'); 
            });
            $("#a2").click(function(e) {
                Load('page2.php'); 
            });
        });
    </script>
    </head>
    <body>
        <div>
            <a href="javascript:" id="a1">Abrir Tela 1</a>
            <a href="javascript:" id="a2">Abrir Tela 2</a>
        </div>
        <div id="carregar"></div>
    </body>
    </html>

    //page1.php
    <h1>Pagina Link 1</h1>

    //page2.php
    <h1>Pagina Link 2</h1>
<?php
    $conexao = new PDO("mysql:dbname=generics;host=localhost", "root", "senha");
    $tables  = $conexao->prepare("show tables");
    $tables->execute();
    print_r($tables->fetchAll());
?>

Страницу меню вызывает page1.php и страница 2.php которых 2 ярославль.php имеет соединение с базой данных с классом PDO, внимательность, поставить @, потому что, скрывает ошибки и mysql уже устарел в новых версиях PHP, как только будут сняты, работать с mysqli или PDO (PDO я считаю, что лучше по стандартизации кодирования, обслуживающих же для развлечений типы банков) ...

 2
Author: Guilherme Nascimento, 2017-06-30 02:24:43