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

Busca no array. Como fazer


Carlos Rocha

Pergunta

Olá pessoal.

Bom dia!

Tenho um array php com essa estrutura:

Array
(
    [0] => Array
        (
            [0] => 98
            [1] => 18
            [2] => 1
            [3] => 1
            [4] => 01_BRANCO
            [5] => 3_4
            [6] => 12
        )

    [1] => Array
        (
            [0] => 132
            [1] => 18
            [2] => 1
            [3] => 2
            [4] => 01_BRANCO
            [5] => M
            [6] => 12
        )

    [2] => Array
        (
            [0] => 99
            [1] => 18
            [2] => 1
            [3] => 6
            [4] => 01_BRANCO
            [5] => P
            [6] => 34
        )

    [3] => Array
        (
            [0] => 100
            [1] => 18
            [2] => 2
            [3] => 1
            [4] => Preta
            [5] => 3_4
            [6] => 5
        )

    [4] => Array
        (
            [0] => 101
            [1] => 18
            [2] => 2
            [3] => 6
            [4] => Preta
            [5] => P
            [6] => 6
        )

)
Tenho um array JavaScript com essa estrutura:
par_escolhido = Array(cor_marcada, tamanho_marcado);

Onde cor_marcada e tamanho_marcado são números. No caso, valores vindos de radio buttons selecionados.

Preciso buscar nessa variável php, uma combinação

do índice 2 com o índice 1 do arra JavaScript

do índice 3 com o índice 2 do arra JavaScript

Fazer essa verificação em todos os índices primários do array php.

Só que preciso fazer essa verificação em JavaScript para saber se exite uma combinação válida de cor e tamanho para o produto que o cliente escolheu.

Como eu faria isso?

Obrigado a quem puder ajudar!

Carlos Rocha

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

você pode utilizar Ajax, executar a consulta no PHP e retornar o resultado para o usuário ou

você pode obter um JSON contendo a forma serializada deste array e fazer esta consulta do lado do usuário.

Como está fazendo?

Link para o comentário
Compartilhar em outros sites

  • 0

Isso ai já é mais dificil para o nível de programação que estou.

Mas, consegui uma função me retorna uma matri js a partir de uma matriz php;

Ele retornou uma matriz js desse jeito.

pares = new Array(); 
 pares[0] = new Array(); 
 pares[0][0] = '98'; 
 pares[0][1] = '18'; 
 pares[0][2] = '1'; 
 pares[0][3] = '1'; 
 pares[0][4] = '01_BRANCO'; 
 pares[0][5] = '3_4'; 
 pares[0][6] = '12'; 
 pares[1] = new Array(); 
 pares[1][0] = '132'; 
 pares[1][1] = '18'; 
 pares[1][2] = '1'; 
 pares[1][3] = '2'; 
 pares[1][4] = '01_BRANCO'; 
 pares[1][5] = 'M'; 
 pares[1][6] = '12'; 
 pares[2] = new Array(); 
 pares[2][0] = '99'; 
 pares[2][1] = '18'; 
 pares[2][2] = '1'; 
 pares[2][3] = '6'; 
 pares[2][4] = '01_BRANCO'; 
 pares[2][5] = 'P'; 
 pares[2][6] = '34'; 
 pares[3] = new Array(); 
 pares[3][0] = '100'; 
 pares[3][1] = '18'; 
 pares[3][2] = '2'; 
 pares[3][3] = '1'; 
 pares[3][4] = 'Preta'; 
 pares[3][5] = '3_4'; 
 pares[3][6] = '5'; 
 pares[4] = new Array(); 
 pares[4][0] = '101'; 
 pares[4][1] = '18'; 
 pares[4][2] = '2'; 
 pares[4][3] = '6'; 
 pares[4][4] = 'Preta'; 
 pares[4][5] = 'P'; 
 pares[4][6] = '6';

Agora, preciso arranjar uma forma de vericar se o array js

par_escolhido = Array [1,1]

[code]

possui combinação nesse array grande

Se os indices 2 e 3 do array pares, são iguais aos indices 1 e 2 do array par_escolhido.

Como faria isso?

Link para o comentário
Compartilhar em outros sites

  • 0

Bom,

Não sei se entendi direito.

você tem um array JS

par_escolhido = Array(cor_marcada, tamanho_marcado);
As variáveis cor_marcada e tamanho_marcado são do tipo inteiros? Ou seja, você vai passar via JS par_escolhido = new Array[1,2]; E quer que no php essas variaveis sejam incrementadas com 1, ficando Array[2,3]? você pode constuir um script que recebe os dois parametros e incrementa estas variávies. Ex.: consulta.php
$cor = $_GET['cor'];
    $tam = $_GET['tam'];
    
    if(empty($cor) || empty($tam)){
        echo 'Escolha  a cor e tamanho';
        exit();
    }

    $cor++; $tam++;
    
    echo $pares[$cor][$tam];
você invocaria este script assim:
consulta.php?cor=1&tam=3

Dai é so brincar com Ajax

Editado por Romero Dias
Link para o comentário
Compartilhar em outros sites

  • 0

Não, não.

Quero dizer que da forma que eu postei acima funcionou.

O array grande tem que ser pesquisado por combinações com o array pequeno.

Aproveitando.

Deixa eu fazer duas perguntas?

1) o mysqli_fetch_all, para funcionar no servidor, tem que habiltar alguma coisa?

2) Porque esse script não funciona nem no ff nem no chrome. só no ie?

function valida_carrinho(form, itens) 
{
    with (form) 
    {       
        j=0;
        for (var i=0; i < (itens-1)*2; i++) 
        {              
              if (elements(j).value > elements(j+1).value) 
              {
                  alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements(j).value+' \nPorem, só tem '+ elements(j+1).value);
                  elements(j).focus();
                  exit;
              }                     
              j=j+2;
        }
        form.submit();
    }
}

Link para o comentário
Compartilhar em outros sites

  • 0

1) o mysqli_fetch_all, para funcionar no servidor, tem que habiltar alguma coisa?

Se a extensão php_mysqli estiver habilitada, então deverá funcionar.

você pode verificar se ela existe utilizando a seguinte função:

var_dump(method_exists('mysqli_result','fetch_all'));
2) Porque esse script não funciona nem no ff nem no chrome. só no ie? 1º - Te recomendo utilizar jQuery; 2º - Não utilize declaração de estrutura de reptição width.
function valida_carrinho(form, itens) 
{
    with (form) 
    {       
        j=0;
        for (var i=0; i < (itens-1)*2; i++) 
        {              
              if (elements(j).value > elements(j+1).value) 
              {
                  alert('Observe um dos produtos do carrinho\nVocê adicionou '+elements(j).value+' \nPorem, só tem '+ elements(j+1).value);
                  elements(j).focus();
                  exit;
              }                     
              j=j+2;
        }
        form.submit();
    }
}

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,7k
×
×
  • Criar Novo...