Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lady01

Recuperar json em php

Recommended Posts

Estou tentando recuperar um valor em json para uma variável php e não estou conseguindo.

<html>
   <head>
      <script type="text/javascript" src="jquery.js"></script>
 <script>


jQuery(document).ready(function(){
   
   jQuery("button").click(function(){
      jQuery.ajax({
         url: "pagina.php", //URL de destino
         dataType: "json", //Tipo de Retorno
         success: function(json){ //Se ocorrer tudo certo
            var msg = json;
            //alert(msg);
         }
      });
   });
});
 </script> 
      <title>json</title>
   </head>
   <body>
      <button>Clique aqui</button>
 <?php 
$json = file_get_contents('pagina.php');
$bla = json_decode($json, true);
var_dump($bla);


 ?>
   </body>
</html>

pagina.php

<?php
   $texto="Estou aqui";
   echo json_encode($texto);
?>

O que falta?

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse trecho deve ser assim:

<?php 
$json = file_get_contents('pagina.php');
$bla = json_decode($json, true);
echo $bla;


 ?>

Acontece que você só busca por JSON no seu ajax e sua aplicação não tem nenhum output json, então adicione um com echo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E quando você clica sobre esta url retorna o que?

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script>

jQuery(document).ready(function(){

jQuery("button").click(function(){
jQuery.ajax({
url: "pagina.php", //URL de destino
dataType: "json", //Tipo de Retorno
success: function(json){ //Se ocorrer tudo certo
var msg = json;
//alert(msg);
}
});
});
});
</script>
<title>json</title>
</head>
<body>
<button>Clique aqui</button>
NULL
</body>
</html>

esse trecho deve ser assim:

<?php 
$json = file_get_contents('pagina.php');
$bla = json_decode($json, true);
echo $bla;


 ?>

Acontece que você só busca por JSON no seu ajax e sua aplicação não tem nenhum output json, então adicione um com echo.

 

Eu alterei conforme você me orientou, mas não me retorna nada :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste apenas o conteúdo do arquivo pagina.php

 

Lembrando que o arquivo não pode conter nada além do json, qualquer informação a mais não será interpretada pela jQuery.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste apenas o conteúdo do arquivo pagina.php

 

Lembrando que o arquivo não pode conter nada além do json, qualquer informação a mais não será interpretada pela jQuery.

Estou tentando retornar o valor dessa string para uma variável php. Pelas pesquisas que fiz, vi que é possível utilizando json.

 

pagina.php

<?php

$texto="Estou aqui";

echo json_encode($texto);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu script está retornando o valor corretamente, teste assim para ver a impressão do resultado:

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="jquery.js"></script>
		<script type="text/javascript">
		jQuery(document).ready(function(){
			jQuery("button").click(function(){
				jQuery.ajax({
				url: "pagina.php",
				dataType: "json",
				success: function(json){
					var msg = json;
					jQuery("#teste").val(msg);
				}
				});
			});
		});
		</script>
		<title>json</title>
	</head>
	<body>
		<button>Clique aqui</button>
		<input type="text" id="teste" name="teste" value="" />
	</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testei aqui e funcionou sim. Mas não é bem o que eu queria. Eu precisava retornar esse conteudo numa variavel php para imprimi-la de acordo com o click de um menu.

Estou utilizando um sistema de templates do Rael Cunha, nesse caso eu coloco a masterpage num htm e crio um arquivo php para instanciar essa página html e nela exibir o conteudo principal dentro de uma variável através da função de impressão desse sistema. Até agora eu consegui fazer isso. Mas preciso dar vida a um menu, de modo que funcione sem atualizar a página e eu pensei em exibir o conteudo principal de cada link do menu de acordo com o href através do ajax .E do php eu trago o conteudo html numa string para uma variavel php e a imprimo.

É possível colocar essa idéia em prática ou existe alguma melhor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então no caso como eu faria? Teria que criar uma página diferente para cada conteudo de item de menu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, você monta a página inicial e separa o conteúdo que é o mesmo para toda página (topo, rodapé, lateral). Chame eles através de include. Depois faça as páginas internas. Feito isso é só chamar as páginas no menu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

 

arquivo index.php

<html>
	<head>
		<meta charset="UTF-8">
		<title>json</title>
		<script type="text/javascript" src="jquery.js"></script>
		<script>
		$(document).ready(function(){

			$("button").click(function(){
				jQuery.ajax({
					url: "pagina.php", //URL de destino
					dataType: "json", //Tipo de Retorno
					success: function(json){ //Se ocorrer tudo certo
						var msg = json;
						//alert(msg);
					}
				});
			});
		});
		</script> 
	</head>
	
	<body>
	<button>Clique aqui</button>
	<?php 
		function getContent($filepath) {
			$fileContent = include $filepath;
			return $json; 
		}

		$content = getContent("pagina.php");
		$json_decode = json_decode($content);
		var_dump($json_decode);
	?>
	</body>
</html>

pagina.php


<?php

$json = array("texto" => "Estou aqui.");
array_push($json, "Eu também");
$json = json_encode($json);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.