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

Problema Com O Explode()


Beraldo

Pergunta

Estou tentando fazer um script para busca no meu site, mas por enquanto estou testando o envio das variáveis de um <select> para a página PHP. Percebo que quando seleciono mais de um campo do <select>, os valores são enviados, pois eles aparecem na barra de endereços. Porém, quando dou um explode() para colocá-los em uma matriz, só é atribuído o segundo valor. Montei este código para fazer o teste:

<?php
$palavra = $_GET['palavra']; /* pega o conteúdo do TEXTFIELD (palavra-chave) */
$categoria = $_GET['categoria']; /* pega os valores do <SELECT> */
$linha = explode (" ", $categoria); 

echo "$palavra <br> $linha[0], $linha[1]";/* só é mostrado o conteúdo de $linha[1] e $palavra */
?>

Há algo de errado nele?

Talvez seja o separador. Quando são recebidas duas ou mais variáveis pelo navegador, qual é a separação entre elas? É um simples espaço mesmo?

Valeu

Abraços

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Eu fiz esse teste ontem. Na URL aparecem os dois valores para $categoria, mas só aparece um na tela, o último. Tentei fazer assim:

$categoria = array ($_GET['categoria']);

Mas continuei recebendo só o segundo valor...

Não sei o que pode estar acontecendo de errado.

Link para o comentário
Compartilhar em outros sites

  • 0

São enviados dois valores na variável $categoria, um valor para $palavra e um valor (Buscar) para $submit:

busca.php?palavra=teste&categoria=cat1&categoria=cat2&Submit=Buscar

Qual é a separação usada aí? Esses valores são recebidos em uma array pelo comando $_GET['categoria'];, não são?! Daí eu teria que dar um explode(), não teria? E que separação devo utilizar??

Link para o comentário
Compartilhar em outros sites

  • 0

Interessei-me pela i'deia. Eu não tinha tentado, mas não deu. =(

$categoria = $_GET['categoria'];
$linha = explode ("&", $categoria);

echo "$linha[0] <br> $linha[1]";
Continua aparecendo só o último valor. Acho que o problema é na hora de fazer o PHP pegar os dois valores. Como faço isso? Tentei isso:
$categoria = array($_GET['categoria']);
$linha = explode ("&", $categoria);

echo "$linha[0] <br> $linha[1]";

Mas também não funcionou....

Link para o comentário
Compartilhar em outros sites

  • 0

ikkinet, tentei fazer o que você sugeriu. Fiz assim na página .php:

$categoria = $_GET['categoria'];
$linha = explode (" ", $categoria);

echo "$linha[0] <br> $linha[1]";

na tela é impresso apenas "Array".

Há algo de errado nesse explode()? Pelo menos o script já reconhece que é uma matriz! =)

Mas não está dividindo-a...

Link para o comentário
Compartilhar em outros sites

  • 0

você quer fazer tipo uma querystring né?

seu ex:

busca.php?palavra=teste&categoria=cat1&categoria=cat2&Submit=Buscar

Bom no meu sistema de busca fiz assim usei explode() e array()

ficou mais ou menos assim:

$queryString_im = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();

bom pode ser nada haver mais é uma ideia, outra também...

bom você quer buscar $categoria não é?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest THIAGO_LOLI

Kara vê se te ajuda isso ai.... Pelo que você disse ele está recebendo o ultimo valor, então cria um list com os valores para receber, se for mais de 02 cooque mais variavel ou então crie um array $linha[]. Outra que você disse é o espaço em branco. tenta colocar assim "&nbsp;". no mais acho que é isso .... te mais...

<?php

$palavra = $_GET['palavra]; /* pega o conteúdo do TEXTFIELD (palavra-chave) */

$categoria = $_GET['categoria']; /* pega os valores do <SELECT> */

list($linha,$linha1) = explode (" ", $categoria);

echo "$palavra <br> $linha[0], $linha[1]";/* só é mostrado o conteúdo de $linha[1] e $palavra */

?>

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...