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

Consegui usar o comando location.replace apenas uma vez


Frank K Hosaka

Pergunta

Eu tinha um formulário assim

<select onchange="location.replace(`vendaInicio(${this.value})`)" name=detalhe class="bg-transparent">
	<?php foreach($grupos as $grupo): ?>
		<option value="<?=date('d/m/y',strtotime($grupo->ddia))?>"
			<?php if($detalhe==$grupo->ddia) echo "selected"; ?>>
			<?=date('d/m/y',strtotime($grupo->ddia))?> -> <?=dec($grupo->ttotal)?>
		</option>
	<?php endforeach;?>
</select>

Mas ele só funcionava uma única vez, ele criava uma solicitação tipo vendaInicio(18/02/25), mas quando selecionava outra data, a solicitação saia assim vendaInicio(18/02/vendaInicio(15/02/25). Eu não entendi porque esse problema aconteceu. 

Pode ser que a culpa não seja do JavaScript, mas sim do meu roteador:

arquivo index.php
<?php
require('config.php');
$requestUri = $_SERVER['REQUEST_URI'];
$path = substr($requestUri, strlen($basePath));
if ($path == "") {
    $path = "loginLogin";
}

if (!strpos($path, '(')) {
    $path .= '()';
}

if (preg_match('/^([a-z]+)([A-Z][a-zA-Z]*)\((.*)\)$/', $path, $matches)) {
    $classe = $matches[1];
    $metodo = $matches[2];
    $argumentos = explode(',', $matches[3]);
    $argumentos = array_map('urldecode', $argumentos);

    if (!empty($argumentos[0]) && !empty($argumentos)) {
        $classe::$metodo(...$argumentos);
    } else { 
        $classe::$metodo();
    }
} else {
    echo "Formato de URL inválido.";
}
?>

Mas, eu não fui capaz de resolver o problema. Ao invés disso, mudei a função Venda::inicio($argumento) para Venda::inicio( ), e coloquei a caixa de seleção dentro de um <form>, e tudo funciona como eu espero.

Até agora eu não vi nenhum problema em usar a classe estática ao invés da instância da classe, esse é o primeiro caso que enfrentei esse tipo de problema.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,4k
    • Posts
      652,1k
×
×
  • Criar Novo...