Вставить 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 } ?>
3 answers
TL;DR - Включить файлы php, которые определяют соединение
link2.php
. В.load()
jQuery будет работать только тогда, когда вы можете сделать запрос, прямойlink2.php
и получить фрагмент html желаемого.
Ты понять две вещи. Интерпретация строки PHP server-side (include
) с ajax функции client-side.
Метод load
jQuery ожидает, что 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-кода в теле страницы. Браузер не есть наука, что это два отдельных файла.
Попробуйте использовать приложения, такие как firebug, чтобы debugar сделки и проверить, если вы получаете данные правильно во время запроса, сделанные с помощью jQuery.
Попробуйте следующий пример:
<script type="text/javascript">
$(document).ready(function() {
$("#link2").on('click', function(){
$.get("link2.php", function( data ) {
$('#conteudo').html(data);
});
});
});
</script>
//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 я считаю, что лучше по стандартизации кодирования, обслуживающих же для развлечений типы банков) ...