Eu tenho que mostrar uma página do meu script php com base em certas condições. Eu tenho uma condição if e estou fazendo uma "inclusão" se a condição for satisfeita.
if(condition here){
include "myFile.php?id='$someVar'";
}
Agora o problema é que o servidor tem um arquivo "myFile.php" mas eu quero fazer uma chamada para este arquivo com um argumento (id) e o valor de "id" mudará a cada chamada.
Alguém pode me dizer como fazer isso? Obrigado.
php
parameters
include
perdido em trânsito
fonte
fonte
Respostas:
Imagine o include como o que é: Uma cópia e colagem do conteúdo do arquivo PHP incluído que será interpretado. Não há nenhuma mudança de escopo, então você ainda pode acessar $ someVar no arquivo incluído diretamente (mesmo que você possa considerar uma estrutura baseada em classe onde você passa $ someVar como um parâmetro ou se refere a algumas variáveis globais).
fonte
Você poderia fazer algo assim para alcançar o efeito que deseja:
No entanto, parece que você está usando este include como algum tipo de chamada de função (você mencionou chamá-lo repetidamente com argumentos diferentes).
Nesse caso, por que não transformá-la em uma função regular, incluída uma vez e chamada várias vezes?
fonte
include("myFile.php?id=$somevar");
idêntico?include("myFile.php?...
não funciona como pretendido.Uma inclusão é como uma inserção de código. Você obtém em seu código incluído as mesmas variáveis exatas que tem em seu código base. Portanto, você pode fazer isso em seu arquivo principal:
E em "myFile.php":
Isso resultará em:
fonte
Se você for escrever este include manualmente no arquivo PHP - a resposta de Daff é perfeita.
De qualquer forma, se você precisa fazer o que era a pergunta inicial, aqui está uma pequena função simples para conseguir isso:
?>
Estou usando essa construção de variável variável com muita frequência.
fonte
No arquivo que você incluir, envolva o html em uma função.
No arquivo onde deseja incluí-lo, inclua o arquivo e chame a função com os parâmetros desejados.
fonte
Eu sei que já faz um tempo, no entanto, estou me perguntando se a melhor maneira de lidar com isso seria utilizar a (s) variável (is) de sessão
Em seu myFile.php você teria
E no arquivo de chamada
Isso contornaria a necessidade "sugerida" de Funcionalizar todo o processo?
fonte
Eu encontrei isso ao fazer formulários Ajax onde incluo vários conjuntos de campos. Tomemos, por exemplo, um pedido de emprego. Eu começo com um conjunto de referência profissional e tenho um botão que diz "Adicionar mais". Isso faz uma chamada ajax com um parâmetro $ count para incluir o conjunto de entrada novamente (nome, contato, telefone etc.). Isso funciona bem na chamada de primeira página, pois faço algo como:
O usuário pressiona um botão que faz uma chamada ajax.
Então, dentro do arquivo reference.php, eu tenho algo como:ajax('references.php?count=1');
Também tenho outras inclusões dinâmicas como essa em todo o site que passam parâmetros. O problema ocorre quando o usuário pressiona enviar e ocorre um erro de formulário. Portanto, agora, para não duplicar o código para incluir os conjuntos de campos extras que foram incluídos dinamicamente, criei uma função que configurará a inclusão com os parâmetros GET apropriados.
A função verifica os parâmetros de consulta e os adiciona automaticamente à variável $ _GET. Isso funcionou muito bem para meus casos de uso.
Aqui está um exemplo na página do formulário quando chamado:
Apenas outro exemplo de inclusão de parâmetros GET dinamicamente para acomodar certos casos de uso. Espero que isto ajude. Observe que este código não está em seu estado completo, mas isso deve ser o suficiente para que qualquer pessoa comece bem em seu caso de uso.
fonte
Sua pergunta não está muito clara, mas se você quiser incluir o arquivo php (adicionar a fonte dessa página à sua), você apenas tem que fazer o seguinte:
Contanto que a variável seja denominada $ someVar em meuArquivo.php
fonte
Eu estava na mesma situação e precisava incluir uma página enviando alguns parâmetros ... Mas na verdade o que eu queria fazer é redirecionar a página ... se for o caso para você, o código é:
fonte
Se alguém mais estiver nessa questão, ao usar
include('somepath.php');
e esse arquivo contém uma função, o var deve ser declarado lá também. A inclusão de$var=$var;
nem sempre funciona. Tente executar estes:one.php:
two.php:
fonte
Você também pode usar
$GLOBALS
para resolver esse problema.fonte
A maneira mais simples de fazer isso é assim
index.php
second.php
Você pode compartilhar variáveis, pois está incluindo 2 arquivos usando "incluir"
fonte
Faça isso:
E adicione ao seu
insert.php
arquivo:fonte