Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom Dia Pessoal
Estou com uma dúvida um tanto boba, podem me ajudar?
Estou fazendo uma requisição via ajax para o php aonde envio algumas variaveis que devem ser alocadas no meio do resultado do SELECT que será feito no PHP.
Veja exemplo:
/** PHP **/
<?php
$id = $_POST['id'];
$nome = $_POST['nome'];
$cpf = $_POST['cpf'];
$telefone = $_POST['telefone'];
$gerar_auditoria = mysql_query("SELECT * FROM auditoria_scripts WHERE id = '$id'") or die(mysql_error());
$resultado_auditoria = mysql_fetch_array($gerar_auditoria);
echo $resultado_auditoria['script'];
?>
/** SAIDA HTML **/
<p class="borda">
NOME COMPLETO: ".$nome ."<br>
CPF: ".$cpf ."<br>
TELEFONE 1: ".$telefone ."<br>
</p>
Vejam que envio as variaveis nas quais quero que sejam interpretadas no meio do texto de resultado do SELECT, o que acontece é que os nomes das variaveis estão sendo impressos na tela em vez dos valores delas.
O que está salvo no banco é esse HTML... com tag, aspas e tudo... mas a variavel esta la no meio e quero interpretar ela com o a mesma que enviei no POST.
Como poderia tratar elas? Ja tentei com as aspas, sem aspas, concatenando etc...
Aguardo a ajuda, muito obrigado pessoal.
As variáveis tem que estar dentro de um bloco do PHP, você fechou o PHP e ai mandou as variáveis, logo, elas nunca serão interpretadas mesmo.
Nenhuma das alternativas funcionou.
No caso do ESerra até achei lógico e coloquei as variaveis dentro de trechos do PHP, ai na hora de imprimir ele não deixa como string igual antes, mas fica vazio... é como se o POST não tivesse enviando, mas está pois testei... Ou seja... na hora que ele da echo com o resultado do banco(trecho html com variaveis php) é como se não tivesse "dado tempo" dele pegar o POST e tacar la no meio.
Alguma outra possibilidade?
Que tal postar o formulário e o código dessa sua última tentativa? Sem isso fica complicado falar qualquer coisa.
É simples... faço uma requisição ajax enviando algumas variaveis...
$.ajax({
type: 'post',
data: 'acao=chamar&id='+$("#id").val()+
'&nome='+$("#nome").val()+
'&cpf='+$("#cpf").val(),
url:'funcoes/funcoes_gerar_auditoria.php',
success: function(retorno){
$("#auditoria .accordion-inner").html(retorno);
} // SUCCESS
}); // AJAX<p class="borda">
NOME COMPLETO: ".$nome ."<br>
CPF: ".$cpf ."<br>
</p>
Chegando la no PHP recebo as variaveis e faço a consulta:
<?php
$id = $_POST['id'];
$nome = $_POST['nome'];
$cpf = $_POST['cpf'];
$gerar_auditoria = mysql_query("SELECT * FROM auditoria_scripts WHERE id = '$id'") or die(mysql_error());
$resultado_auditoria = mysql_fetch_array($gerar_auditoria);
echo $resultado_auditoria['script'];
?>
Dentro do elemento accordion referido no primeiro bloco de codigo, faço a inclusão do resultado da consulta do php usando o retorno do AJAX, e assim a saida deveria ser essa:
<p class="borda">
NOME COMPLETO: ALGUM NOME<br>
CPF: ALGUM CPF<br>
</p>
Mas não... ele sai exatamente como está salvo no banco de dados.
Iai o que acha colega?
Pelo que eu entendi agora, você está salvando no BD as variáveis para depois elas serem trocadas por algum valor, neste caso você deverá usar o eval para realizar essa tarefa, pois as $variaveis que estão dentro da string vinda do BD "não existem" de fato durante a execução do script.
Dito e feito... desculpe a demora para o retorno.
Mas eval solucionou.... bati um pouco a cabeça para aprender a usar ele.... mas deu certo...
Muito Obrigado ESerra e ao colega Bruno Rafael.
Abraços!
tente assim:
pra printar o resultado você teria que fazer mais ou menos assim: espero ter ajudado!Att.