Isso mesmo... como mostrar para um cliente o tipo de produto que mais se adapta em suas necessidades ?
Aqui onde trabalho chamamos isso de Sistema de Adequação, muito util para sites comerciais...
eu havia postado dúvidas no fórum e acabei encontrando a solução, gostei tanto que vou postar um script pronto pra quem quizer fazer isso em seu site...
sem complicações, sem DB e sem erro... apenas com cálculos !
os comentários irão explicar os passos principais do script que interpreta as informações...
apenas lembrando que esse código usa um exemplo de 5 perguntas e 3 alternativas para cada exemplo
vamos lá
adequacao.php
<?
// pegando os values dos radio buttons do form
$radio1 = $_POST['radio1'];
$radio2 = $_POST['radio2'];
$radio3 = $_POST['radio3'];
$radio4 = $_POST['radio4'];
$radio5 = $_POST['radio5'];
// array (vetor) que inicialmente receberá a quantidade de vezes
// que certa resposta foi marcada
$resultados[0] = 0;
$resultados[1] = 0;
$resultados[2] = 0;
//primeiro grupo de respostas
if ($radio1 == 1) // se radio1 receber o valor 1
{
$resultados[0]++; // incremente em 1 o vetor $resultados na posição 0
}
elseif($radio1 == 2) // se radio1 receber o valor 2
{
$resultados[1]++; // incremente em 1 o vetor $resultados na posição 1
}
elseif ($radio1 == 3) // se radio1 receber o valor 3
{
$resultados[2]++; // incremente em 1 o vetor $resultados na posição 2
}
// segundo grupo de respostas
if ($radio2 == 1){
$resultados[0]++;
}
elseif ($radio2 == 2){
$resultados[1]++;
}
elseif ($radio2 == 3){
$resultados[2]++;
}
// terceiro grupo de respostas
if ($radio3 == 1){
$resultados[0]++;
}
elseif ($radio3 == 2){
$resultados[1]++;
}
elseif ($radio3 == 3){
$resultados[2]++;
}
// quarto grupo de respostas
if ($radio4 == 1){
$resultados[0]++;
}
elseif ($radio4 == 2){
$resultados[1]++;
}
elseif ($radio4 == 3){
$resultados[2]++;
}
// quinto grupo de respostas
if ($radio5 == 1){
$resultados[0]++;
}
elseif ($radio5 == 2){
$resultados[1]++;
}
elseif ($radio5 == 3){
$resultados[2]++;
}
//Criando um vetor auxiliar para armazenar a
$ordenado = $resultados; //quantidade de cada resposta
sort($ordenado); // Ordenando o vetor em ordem crescente,
// essa função n mantém a ordem dos indices
$maior = $ordenado[2]; //Pegando o maior valor do vetor ordenado
//nesse caso o último
$j = 0; //Variável auxiliar
//Descobrindo qual índice se encontra o maior valor descoberto...
for ($i = 0; $i < 3; $i++){
if ($resultados[$i] == $maior){
$Indices[$j] = $i;
$j++;
}
}
//Se o antepenúltimo e o último valor do vetor ordenado forem iguais, então
//existe mais de um índice com o maior valor.
if ($ordenado[1] == $ordenado[2]){ // if1
echo "As respostas com maior número são: <br> ";
//Para cada item do vetor $Indices, escreva na tela a resposta e a
//quantidade de marcações dela.
foreach($Indices as $valor){
$resposta = $valor + 1;
echo "$resposta com $resultados[$valor] marcações <br>";
if ($resposta == 1){
echo "<font color='FF0000'>Produtos do grupo 1</font><br>";
}
elseif($resposta == 2){
echo "<font color='FF0000'>Produtos do grupo 2</font><br>";
}
elseif($resposta == 3){
echo "<font color='FF0000'>Produtos do grupo 3</font><br>";
}
}// FIM foreach
} // FIM if1
else{
//Se só um item do vetor tem o maior valor, então só mostre ele.
foreach($Indices as $valor){
echo "A resposta com maior número é: ";
$resposta = $valor + 1;
echo "$resposta com $resultados[$valor] marcações <br>";
if ($resposta == 1){
echo "<font color='FF0000'>Produtos do grupo 1</font><br>";
}
elseif($resposta == 2){
echo "<font color='FF0000'>Produtos do grupo 2</font><br>";
}
elseif($resposta == 3){
echo "<font color='FF0000'>Produtos do grupo 3</font><br>";
}
}
}
?>
form.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
function checkAllRadioB(ParForm){
var k,p,y,z,xy,i,p;
var FrmElements = document.forms[ParForm].elements;
//Faz um loop em todos os elementos existentes do formulário
for(i=0;i<FrmElements.length;i++){
k = 1;
if(FrmElements[i].type == 'radio'){
y = i;
z = y;
while(FrmElements[y].name == FrmElements[y+1].name){
y++;
k++;
}
// k agora possui o tamanho do grupo dos botões ex: r1,r1,rs1; k = 3
i = y;
xy = 0;
for(p=0;p<k;p++){
if(FrmElements[z+p].checked==false) xy++;
}
if(xy == k){
alert('Favor responder todas as perguntas');
return false;
}
}
}
return false;
}
</script>
</head>
<body>
<form action="adequacao.php" method="post" name="form1" onSubmit="java script:return checkAllRadioB('form1')">
<p>pergunta 1</p>
<input name="radio1" type="radio" value="1" />teste1
<input name="radio1" type="radio" value="2" />teste2
<input name="radio1" type="radio" value="3" />teste3
<p>pergunta 2</p>
<input name="radio2" type="radio" value="1" />teste1
<input name="radio2" type="radio" value="2" />teste2
<input name="radio2" type="radio" value="3" />teste3
<p>pergunta 3</p>
<input name="radio3" type="radio" value="1" />teste1
<input name="radio3" type="radio" value="2" />teste2
<input name="radio3" type="radio" value="3" />teste3
<p>pergunta 4</p>
<input name="radio4" type="radio" value="1" />teste1
<input name="radio4" type="radio" value="2" />teste2
<input name="radio4" type="radio" value="3" />teste3
<p>pergunta 5</p>
<input name="radio5" type="radio" value="1" />teste1
<input name="radio5" type="radio" value="2" />teste2
<input name="radio5" type="radio" value="3" />teste3
<p><input type="submit" value="executa" /></p>
</form>
</body>
</html>
como eu sempre digo... dúvidas, sugestões, bugs, pedidos, reclamações, pf postem aqui...
Pergunta
Mestereko
Isso mesmo... como mostrar para um cliente o tipo de produto que mais se adapta em suas necessidades ?
Aqui onde trabalho chamamos isso de Sistema de Adequação, muito util para sites comerciais...
eu havia postado dúvidas no fórum e acabei encontrando a solução, gostei tanto que vou postar um script pronto pra quem quizer fazer isso em seu site...
sem complicações, sem DB e sem erro... apenas com cálculos !
os comentários irão explicar os passos principais do script que interpreta as informações...
apenas lembrando que esse código usa um exemplo de 5 perguntas e 3 alternativas para cada exemplo
vamos lá
adequacao.php
form.htmcomo eu sempre digo... dúvidas, sugestões, bugs, pedidos, reclamações, pf postem aqui...
t+ :D
Editado por MesterekoLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.