Ir para conteúdo
Fórum Script Brasil
  • 0

Onde colocar o código do produto no <input list>?


Frank K Hosaka

Pergunta

Ontem, o Iowys comentou que procurar um produto pela descrição é uma péssia ideia, pois o mundo do MySQL é uma coisa e do HTML é bem outra. O único denominador entre esses mundos é o código do produto. O Iowys está coberto de razão. Então, a pergunta mais óbvia é onde colocar o código do produto? Graças ao PHP, você pode colocar o código do produto onde você quiser. No meu caso, eu coloquei o código do produto no final da descrição do produto. A seguir eu publico o código PHP de como colocar isso na prática.

Como o <input list> vai trabalhar com a descrição e o código ao mesmo tempo, isso signfica que você pode procurar o produto tanto pela descrição como pelo código. O problema é que se você colocar o código 43, o <input list> vai listar os produtos com o código 143,1143,1243,243,343. Nesse caso, seria interessante botar um zero antes do código para procurar o produto com o código 0043, mas o meu código a seguir não contempla essa solução.

astudy.php

<?php
if(isset($_GET['escolha'])){
    $produto=$_GET['escolha'];
    $pos1=strpos($produto,"[")+1;
    $pos2=strpos($produto,"]");
    $tamanho=$pos2-$pos1;
    $codprod=substr($produto,$pos1,$tamanho);
    echo "$produto => código do produto $codprod";
    echo "<p><button onclick=location.replace('astudy.php')>Procurar outro produto</button>";
    exit;
}
?>
<form>
<input list=produtos name=escolha onchange=submit()>
<datalist id=produtos>
<?php
$mysqli=new mysqli("localhost","root","","diario");
$query=$mysqli->query("select * from tbprod order by prod");
while($row=$query->fetch_assoc()){
    $texto=$row['prod']; 
    $codprod=$row['codprod'];
    $exibir=$texto." [$codprod]";
    echo "<option>$exibir</option>";}
?>
</datalist>
</form>

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Aqui está o mesmo código, considerando que o código do produto será exibido sempre com quatro digítos (se no MySQL o código do produto for 22, o <input list> vai mostrar como [0022]:

<?php
$mysqli=new mysqli("localhost","root","","diario");
if(isset($_GET['escolha'])){
    $produto=$_GET['escolha'];
    $pos1=strpos($produto,"[")+1;
    $codprod=substr($produto,$pos1,4);
    echo "$produto => código do produto $codprod";
    $teste=$mysqli->query("select * from tbprod where codprod=$codprod");
    echo "<p>produto: ".$teste->fetch_assoc()['prod'];
    echo "<p><button onclick=location.replace('astudy.php')>Procurar outro produto</button>";
    exit;}
?>
<form>
<input list=produtos name=escolha onchange=submit()>
<datalist id=produtos>
<?php
$query=$mysqli->query("select * from tbprod order by prod");
while($row=$query->fetch_assoc()){
    $texto=$row['prod']; 
    $codprod=$row['codprod'];
	$cod2=$codprod;
    if($codprod<10){$cod2="000".$codprod;}
    if($codprod>=10&&$codprod<100){$cod2="00".$codprod;}
    if($codprod>=100&&$codprod<1000){$cod2="0".$codprod;}
    $exibir=$texto." [$cod2]";
    echo "<option>$exibir</option>";}
?>
</datalist>
</form>

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...