Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Então, aqui na empresa há uma função que, ao selecionar um campo, preenche automaticamente o outro. Por exemplo, ela é usada para preencher o campo 'Valor da bolsa por extenso' quando o usuário seleciona um valor da bolsa (é um select, se seleciona R$400.00, preenche 'quatrocentos reais' no bolsa extenso).
Porém, o site estava todo em char ISO-8859-1, e por boa prática (e alguns dados sendo enviados incorretamente ao banco), resolvi converter todo o site para UTF-8. Fiz todas as conversões necessárias, porém essa função em especial parou de funcionar. Já tentei de diversas formas mas não consegui botá-la para funcionar novamente.
eis a função:
function gera_select_bd($nome_select,$tabela,$campo,$valor,$label_select,$valor_select,$form_nome,$form_campo,$ordem){
global $database;
echo("<script language=\"javascript\">
function atualiza_".$form_campo."(){
var indice = document.".$form_nome.".select_".$nome_select.".selectedIndex;
//document.".$form_nome.".".$form_campo.".value = document.".$form_nome.".select_".$nome_select.".value;
document.".$form_nome.".".$nome_select.".value=document.".$form_nome.".select_".$nome_select."[indice].text;
}
</script>");
$query = "SELECT * FROM `".($tabela)."` WHERE `".($campo)."` LIKE '".($valor)."' ORDER BY ".($ordem)."";
$result = $database->query($query);
$num_linhas = mysql_num_rows($result);
echo("<input type='hidden' id='".$nome_select."' name='".$nome_select."' value=''>");
echo("<select class=\"tamanhosel\" onChange=\"atualiza_".$form_campo."();\" name=\"select_".$nome_select."\">");
echo("<option value=\"Escolha...\" selected>Escolha...</option>");
for($i=0;$i<$num_linhas;$i++){
$row = mysql_fetch_array($result);
echo("<option value=\"".htmlentities($row[$valor_select])."\">".htmlentities($row[$label_select])."</option>");
}
echo("</select>");
}
E uma chamada da função:
<tr>
<td align="right">Valor da bolsa auxílio:</td>
<td>
<?php
gera_select_bd("bolsa_aux","empresas_valores","empresa",$empresa,"valor","valor_ext","dados","bolsa_ext","valor");
?>
<div align="right"><a href="#" class="btn" lang="pt" onclick="MM_openBrWindow('conteudo/nova_bolsa.php','bolsa','width=500,height=200')" xml:lang="pt">Novo valor da bolsa</a></div></td>
</tr>
<tr>
<td align="right">Valor da bolsa por extenso:</td>
<td><input type="text" name="bolsa_ext" id="bolsa_ext"></td>
</tr>
Tentei fazer algumas mudanças no código, mas sem sucesso. A princípio, imagino que o erro esteja na função htmlentities, mas não entendi a real função dela exatamente.
Ainda assim, tentei aplicar a seguinte mudança:
echo("<option value=\"".htmlentities($row[$valor_select], ENT_COMPAT, 'UTF-8')."\">".htmlentities(utf8_encode($row[$label_select]), ENT_COMPAT, 'UTF-8')."</option>");
Para que transformasse em UTF-8, porém ainda assim não funcionou. Alguém tem uma luz?
Obrigado!
[]'s
Carregando comentários...