Ir para conteúdo

POWERED BY:

Arquivado

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

tetraetila

PHP atribuir valores a variáveis dinamicamente.

Recommended Posts

Olá!

 

Não tenho experiência com PHP, eu recebo via URL uma string assim: &a25Item1=001&a25Prod1=001234&a25Desc1=DescricaoRecebida os números podem ir de 1 a n... Pergunto, como dentro do for eu consigo atribuir o valor $a25Item1 = $_GET['a25Item1']  substituindo o número 1..n pelo contador? Em xHarbour eu posso usar &("a25Item" + Str(i)) ele avalia a expressão. Não sei como fazer em PHP.

 

$qtdProd = $_GET['qtdProd'];

 

for($i = 0; $i <=$qtdProd ; $i++){
    $a25Item  i = $_GET['a25Item'  i ];
    $a25Prod  i = $_GET['a25Prod'  i ];
    $a25Desc  i = $_GET['a25Desc'  i ];
}

 

No caso acima preciso atribuir a25Item0 = $_GET['a25Item0'], depois 1, 2, 3... quantas vezes forem recebidas em $qtdProd.

 

Muito obrigado!

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @tetraetila, seja bem-vindo.

 

O mais correto seria alterar a forma de receber os dados, pois dessa forma está antiprodutiva.

De todo modo, assumindo que você não exerce influência sobre como a URL é recebida, lhe sugiro o seguinte:

 

<?php
// Definindo nossa amostra de testes:
$_GET[ 'a25Item1' ] = 'item1';
$_GET[ 'a25Prod1' ] = 'prod1';
$_GET[ 'a25Desc1' ] = 'desc1';

$_GET[ 'a25Item2' ] = 'item2';
$_GET[ 'a25Prod2' ] = 'prod2';
$_GET[ 'a25Desc2' ] = 'desc2';

// Fazendo nosso loop para desestruturar a string do GET
foreach( $_GET as $chave => $valor ) {
    // Se você quer apenas criar uma variável com o nome da chave do $_GET, é bem simples:
    $$chave = $valor;// isso vai criar a25Item2 = 'prod2', por ex. Uma variável para cada volta
    
    // Se você quer desmembrar a string e validar seu conteúdo, pode usar regex ou sscanf, assim:
    list( $tipo, $id ) = sscanf( $chave, 'a25%[A-Za-z]%d' );
    
    echo 'Tipo: ' . $tipo . ' - ID: ' . $id . "\n\n";
}

echo 'Teste da variável $a25Item2: ' . $a25Item2;

 

Resultado:

Tipo: Item - ID: 1

Tipo: Prod - ID: 1

Tipo: Desc - ID: 1

Tipo: Item - ID: 2

Tipo: Prod - ID: 2

Tipo: Desc - ID: 2

Teste da variável $a25Item2: item2

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta!

 

Ficou da seguinte forma:

 

$item = array();
$prod = array();
$quan = array();
$desc = array();
$prec = array();
$subt = array();

 

for($i = 0; $i <= $nCtd ; $i++){
  $item['a25Item'.$i] = $_GET['a25Item'.$i];
  $prod['a25Prod'.$i] = $_GET['a25Prod'.$i];
  $quan['a25Quan'.$i] = $_GET['a25Quan'.$i];
  $desc['a25Desc'.$i] = $_GET['a25Desc'.$i];
  $prec['a25Prec'.$i] = $_GET['a25Prec'.$i];
  $subt['a25Subt'.$i] = $_GET['a25Subt'.$i];
}

Assim eu consigo pegar os valores individualmente e montar o que preciso.

 

for($i = 0; $i <= $qtdItem -1 ; $i++){
    
$html3 = $html3."<tr><td>".$item[a25Item.$i]."</td><td>".$prod[a25Prod.$i]."</td><td>".$refer."</td><td align='right'>".$quan[a25Quan.$i]."</td><td>".$local."</td><td>".$desc[a25Desc.$i]."</td><td align='right'>".$prec[a25Prec.$i]."</td><td align='right'>".$subt[a25Subt.$i]."</td>";

}

 

Essa URL só trafega internamente no programa, chama, gera um PDF e morre.

 

Muito obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ivansilvask83
      Pessoal preciso mostrar na tabela o valor de nome, email e cotas o problema é que não estou conseguindo mostrar a quantidade de cotas porque preciso de 2 variaveis foreach ou 2 foreach.
      segue o codígo:
      <tbody>                                 <?php                                 if(!empty($indicados_nivel)){                                     foreach($indicados_nivel as $indicado){                                         $indicadoInfo = $this->conta_model->InfoUser($indicado); foreach ($cotas as $cota) {                                     ?>                                     <tr>                                     <td width="200">                                          <?php echo $indicadoInfo->nome;?>                                     </td>                                     <td width="250">                                         <?php echo $indicadoInfo->email;?>                                     </td>                                     <td width="50">                                         <?php echo $cota->quantidade; ?> //Aqui Preciso Mostrar a Quantidade de cotas que cada usuario tem//                                     </td>                                 </tr>                                     <?php                                     }                                 }                                 ?> </tbody>  
    • Por Carlos - Aracaju
      Olá, pretendo criar um sistema de sorteio de palavras onde o usuário coloca-se os nomes que quiser e quantos quiser, porem n consigo fazer com que o sorteio seja bem sucedido, não consigo achar uma solução, quem poder me ajudar, desde já agradeço
      esse é meu código:
      <?php if ($_POST) { $controle = 1; $tipo = 'nome'; $quantidade = $_POST['quant']; $rand = rand(1, $quantidade); $tdnome = ''; while($controle <= $quantidade){ $result = $tipo.$controle; $nomes = $_POST[$result]; echo $controle.' - '.$nomes . '<br />'; if ($controle < $quantidade) { $tdnome .= '"'.$nomes.'", '; } else{ $tdnome .= '"'.$nomes.'"'; } $controle++; } print '<br>'.$tdnome.'<br>'; echo "<br><b>sorteado: ".$array[$rand]."</b>"; } ?> <!DOCTYPE html> <html> <head> <title>sorteio</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script type="text/javascript"> var numero = 1; function adicionar() { numero++; $("#divPrincipal").append("<input type='text' name='nome"+numero+"' placeholder='nome "+numero+"' value='nome "+numero+"' /><br><br>"); $("#quant").val(numero); $("#numerodenomes").text(numero); } </script> </head> <body> <form name="teste" method="post" action=""> <!-- <textarea name="text"></textarea> --> <input id="quant" type="text" name="quant" value="1" style="display: none;" /> <p ><b>quantidade de nomes:</b> <q id="numerodenomes">1</q></p> <br><br><br><br> <div id="divPrincipal"> <input type="text" name="nome1" placeholder="nome 1" value="nome 1" /> <br><br> </div> <input type="submit" name="enviar" value="Enviar" /> </form> <a href="javascript: adicionar()">Adicionar</a> </body> </html>  
    • Por Jefferson andre
      Ola,
       
      Criei uma rotina que eh chamada dentro do html, esta rotina abre um banco de dados e pega os valores de algumas variaveis contendo caminhos para video aulas e entao fecha o banco de dados, ao retornar ao html eu quero usar estas variaveis para abrir videos que estarao sendo demonstrados em forma de links.
       
      A mesma situacao foi resolvida dentro do php com imagens para uma outra situacao mas nao consigo fazer isso para videos, se eu conseguir nao preciso puxar as variaveis para o html.
      <?php
      // fazendo uma conexão com o banco de dados
      include("conexao.php");
      //pesquisa
      $resultado = $arquivo->query("SELECT * FROM divulgacao WHERE ativo = 'S' AND tipo = 'IM'");
      if (false === $resultado) {
          echo mysqli_error();
      }
      $linha=mysqli_fetch_array($resultado);
      $caminho_divulgacao = $linha["caminho"];
       
      //echo "<font face='Arial'><span class='style14'>$caminho_divulgacao</span></font>";
      $exibir = "<img src=".$caminho_divulgacao." /><br />";
      echo $exibir ;
       
      mysqli_close($arquivo);
      ?>
       
      Alguma dica ?
    • Por MAKAVELIQUE
      Saudações, criei meu perfil hoje, sou iniciante neste mundo da programação, alguém poderia me ajudar a compreender isso? é um código em javascript que eu estou escrevendo,    variáveis b1, b2, b3 e c1, c2 e c3 recebem valores parecidos com estes, contudo,   parece que os if´s não estão fazendo as devidas verificações pra abrir o document.write de acordo com cada condição...
      <script> function teste() {     img1.src = "foto.png";                b1="J";// esses valores podem variar...     c1="C";// esses valores podem variar...     b2="J";// esses valores podem variar...     c2="C";// esses valores podem variar...     b3="J";// esses valores podem variar...     c3="C";// esses valores podem variar...     if(b1 == c1 && b1 == b3){//daqui pra baixo parece que não funciona...     if(c1==c2 && c2==c3){                 document.write ("1");     }         if(c1!=c2 && c2 != c3 && c1!= c3){     document.write ("2"); }          if(c1== c2 && c1 != c3 or c2 == c3 && c2 != c1 or c1== c3 && c2 != c1 ){       document.write ("3"); } } } </script> <a href="#" onClick="teste();"><img style="position:absolute; left:20px; top:275px; " src="imagem.gif" name="img1"/></a>  
      <script> //Observação: assim funciona:  function teste() { img1.src = "foto.png";  } </script> <a href="#" onClick="teste();"><img style="position:absolute; left:20px; top:275px; " src="imagem.gif" name="img1"/></a>  
    • Por LucasOficial
      Me foi passado um trabalho de faculdade que consiste em:
      imagine um vetor inicialmente vazio com capacidade CAP.
      cria um programa que através de um menu permita o usuário
      inserir um novo numero
      remover um valor
      remover o elemento de uma determinada posição
      alteração de um valor por outro
      buscar determinado valor e dizer sua posição (caso exista)
      exibição de todos os elementos do vetor
       
      quero algumas ideias de como começar, quais funções, variáveis usar. sou bastante leigo nesse assunto.
×

Informação importante

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