Problema com acento (UTF-8 e ISO-8859-1)
Boa tarde galera,
Estou desenvolvendo um sistema e reparei que ao tentar inserir um funcionário que possua acento o mesmo é adicionado de maneira equivocada.
O sistema tem um formulário onde se adiciona os dados do funcionário a um "departamento" após isso, ele tem um botão adicionar para se adicionar mais funcionários ao departamento. Após adicionar todos os funcionários ao departamento tenho que envia-los para o banco de dados
OBS:
Testei enviando apenas 1 funcionário pelo formulário e está indo com acento certo. O problema é quando adiciono os dados do form em uma lista (pré formulário) ae qnd vou passar os dados parece que ele perde a configuração e grava errado
Exemplo: Pará está vindo como PaÃj
Código onde tem o formulário.
<!DOCTYPE html>
<?php
include_once("conecta.php");
include_once("funcoes.php");
?>
<html lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<title>Substituição Temporário</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/corpo.css">
<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="js/form.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
// Evento change no campo tipo
$("select[name=unidade]").change(function(){
// Exibimos no campo marca antes de concluirmos
$("select[name=lotacao]").html('<option value="">Carregando...</option>');
// Exibimos no campo marca antes de selecionamos a marca, serve tamb?m em caso
// do usuario ja ter selecionado o tipo e resolveu trocar, com isso limpamos a
// sele??o antiga caso tenha feito.
// Passando tipo por parametro para a pagina ajax-marca.php
$.post("ajax-lotacao.php",
{tipo:$(this).val()},
// Carregamos o resultado acima para o campo marca
function(valor){
$("select[name=lotacao]").html(valor);
}
)
})
})
</script>
<script type="text/javascript">
function ResetFormValues() {
$("#nome, #especialidade, #prazo, #nr_matricula").each(function () {
$(this).val("");
});
$("textarea").val("");
$("#cargo, #lotacao").each(function () {
$(this).val("");
});
}
</script>
<div id="interface">
<header id="cabecalho">
<hgroup>
<h1>Substituição</h1>
</hgroup>
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu <span class="glyphicon glyphicon-user pull-right"></span></a>
<ul class="dropdown-menu">
<li><a href="principal.php">Principal <span class="glyphicon glyphicon-home pull-right"></span></a></li>
<li class="divider"></li>
<li><a href="buscarSubstituidoI.php">Cadastrar Substituído<span class="glyphicon glyphicon-plus pull-right"></span></a></li>
<li><a href="buscarSubstituido.php">Alterar Substituído<span class="glyphicon glyphicon-pencil pull-right"></span></a></li>
<li class="divider"></li>
<li><a href="buscarSubstituto.php">Alocar Substituto<span class="glyphicon glyphicon-pencil pull-right"></span></a></li>
<li><a href="buscarSubstitutoA.php">Alterar Substituto<span class="glyphicon glyphicon-pencil pull-right"></span></a></li>
<li class="divider"></li>
<li><a href="buscarMemorando.php">Listar Memorando<span class="glyphicon glyphicon-list-alt pull-right"></span></a></li>
<li class="divider"></li>
<li><a href="finalizar.php">Desconectar<span class="glyphicon glyphicon glyphicon-log-out pull-right"></span></a></li>
<li class="divider"></li>
</ul>
</li>
</ul>
</header>
<section id="corpo">
<div class="container">
<?php
$qntmemo = validaPermissaoSubstituido($conexao, $nr_memorando);
$result_total = $qntmemo->fetch(PDO::FETCH_ASSOC);
$resultado_total = $result_total[count];
if($resultado_total == 0){
?>
<form role="form" method='post' action='#'>
<div class="row">
<div class="panel panel-default">
<div class="panel-body form-horizontal payment-form">
<div class="form-group">
<label for="memorando" class="col-sm-3 control-label">Nº Memorando</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="memorando" name="memorando">
</div>
</div>
<div class="form-group">
<label for="dateM" class="col-sm-3 control-label">Envio do Memorando</label>
<div class="col-sm-3">
<input type="text" class="form-control" id="dateM" name="dateM">
</div>
<label for="unidade" class="col-sm-3 control-label">Unidade</label>
<div class="col-sm-3">
<select class="form-control" id="unidade" name="unidade">
<option value="">Selecione</option>
<?php
$resultado = comboBoxSecretaria($conexao);
while ($linha = $resultado->fetch(PDO::FETCH_ASSOC)){
echo '<option value="'.$linha['cd_secretaria'].'"'.$selected.'>'.$linha['sg_secretaria'].'</option>';
}?>
</select>
</div>
</div>
</div>
</div>
<!-- panel preview -->
<div class="col-sm-14">
<div class="panel panel-default">
<div class="panel-body form-horizontal payment-form">
<fieldset id="Form">
<div class="form-group">
<label for="nome" class="col-sm-3 control-label">Nome</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="nome" name="nome">
</div>
</div>
<div class="form-group">
<label for="cargo" class="col-sm-3 control-label">Cargo</label>
<div class="col-sm-9">
<select class="form-control" id="cargo" name="cargo">
<option value="">Selecione</option>
<?php
$resultadoD = comboBoxCargo($conexao);
while ($linhaD = $resultadoD->fetch(PDO::FETCH_ASSOC)){
echo '<option value="'.$linhaD['cd_cargo'].'"'.$selected.'>'.$linhaD['ds_cargo'].'</option>';
}?>
</select>
</div>
</div>
<div class="form-group">
<label for="especialidade" class="col-sm-3 control-label">Especialidade</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="especialidade" name="especialidade">
</div>
</div>
<div class="form-group">
<label for="lotacao" class="col-sm-3 control-label">Lotação</label>
<div class="col-sm-9">
<select class="form-control" id="lotacao" name="lotacao">
<option value="0" selected="selected">Aguardando Unidade...</option>
</select>
</div>
</div>
<div class="form-group">
<label for="prazo" class="col-sm-3 control-label">Prazo solicitado em meses</label>
<div class="col-sm-3">
<input type="text" class="form-control frm_number_only" id="prazo" name="prazo">
</div>
<label for="nr_matricula" class="col-sm-3 control-label">Nº Matrícula</label>
<div class="col-sm-3">
<input type="text" class="form-control frm_number_only" id="nr_matricula" name="nr_matricula">
</div>
</div>
<div class="form-group">
<label for="justificativa" class="col-sm-3 control-label">Justificativa</label>
<div class="col-sm-9">
<textarea rows="4" cols="50" class="form-control" id="justificativa" name="justificativa"></textarea>
</div>
</div>
<div id="aviso" style="display: none;">
<p style="color:red; font-size:14px">* Preencha todos os campos!</p>
</div>
</fieldset>
<div class="form-group">
<div class="col-sm-12 text-right">
<input class="btn btn-default pre" type="button" id="limparCampos" onclick="ResetFormValues()" value="Limpar" />
<button type="button" class="btn btn-default preview-add-button">
<span class="glyphicon glyphicon-plus"></span> Adicionar
</button>
</div>
</div>
</div>
</div>
</div> <!-- / panel preview -->
<div class="col-sm-14">
<h4>Resumo:</h4>
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<table class="table preview-table">
<thead>
<tr>
<th>Nº Memorando</th>
<th>Nome</th>
<th>Cargo</th>
<th>Especialidade</th>
<th>Prazo</th>
</tr>
</thead>
<tbody></tbody> <!-- preview content goes here-->
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<input type="hidden" class="form-control" id="jsonString" name="jsonString">
<hr style="border:1px dashed #dddddd;">
<!--<input type="submit" onclick="parametros();" class="btn btn-primary btn-block">-->
<button onclick="parametros();" class="btn btn-primary btn-block">Enviar</button>
</div>
</div>
</div>
</div>
</form>
<?php
}else{?>
<form role="form" method='post' action='#'>
<div class="row">
<div class="panel panel-default">
<div class="panel-body form-horizontal payment-form">
<div class="form-group">
<label for="mensagem" class="col-sm-9 control-label">Prazo encerrado para adicionar novos servidores ao memorando!</label>
</div>
</div>
</div>
</div>
</form>
<?}?>
</div>
</section>
<footer id="rodape">
</footer>
</div>
</body>
</html>
Código que adiciona os elementos numa lista de preview antes de enviar os elementos para o banco:
var list = [];
$(function(){
$('.preview-add-button').click(function(){
var form_data = {};
form_data["memorando"] = $('.payment-form input[name="memorando"]').val();
form_data["dateM"] = $('.payment-form input[name="dateM"]').val();
form_data["unidade"] = $('.payment-form #unidade').val();
form_data["nome"] = $('.payment-form input[name="nome"]').val();
form_data["nr_matricula"] = $('.payment-form input[name="nr_matricula"]').val();
form_data["cargo"] = $('.payment-form #cargo').val();
form_data["especialidade"] = $('.payment-form input[name="especialidade"]').val();
form_data["lotacao"] = $('.payment-form #lotacao').val();
form_data["prazo"] =$('.payment-form input[name="prazo"]').val();
form_data["justificativa"] = $('.payment-form textarea[name="justificativa"]').val();
list.push(form_data);
form_data["remove-row"] = '<span class="glyphicon glyphicon-remove"></span>';
var row = $('<tr></tr>');
if($('.payment-form input[name="nome"]').val() !== ""){
$.each(form_data, function( type, value ) {
if((type == "justificativa")||(type == "unidade")||(type == "dateM")||(type == "lotacao")||(type == "nr_matricula")){
$("<td class='input-"+type+"' style='display:none'></td>").html(value).appendTo(row);
}else{
$('<td class="input-'+type+'"></td>').html(value).appendTo(row);
}
});
}else{
$(function(){
$("#aviso").fadeIn(700, function(){
window.setTimeout(function(){
$('#aviso').fadeOut();
}, 5000);
});
});
}
$('.preview-table > tbody:last').append(row);
calc_total();
});
});
Código onde possui o evento do botão de "enviar os dados do formulário"
function parametros(){
for (i = 0; i < list.length; i++) {
$.ajax({
data: {
memorando: list[i]["memorando"],
dateM: list[i]["dateM"],
unidade: list[i]["unidade"],
nome: list[i]["nome"],
nr_matricula: list[i]["nr_matricula"],
cargo: list[i]["cargo"],
especialidade: list[i]["especialidade"],
lotacao: list[i]["lotacao"],
prazo: list[i]["prazo"],
justificativa: list[i]["justificativa"]
},
type: "POST",
url: 'confirmarSubstituido.php',
timeout: 20000,
contentType: "application/x-www-form-urlencoded;charset=ISO-8859-1",
dataType: 'json'});
}
}
Página onde a função Paramentros chama.
<!DOCTYPE html>
<?php
include_once("conecta.php");
include_once("funcoes.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/validacao.css">
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet">
<script src="js/jquery-2.1.3.min.js" type="text/javascript"></script>
<script src="js/form.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<title>Sistema de Seleção</title>
</head>
<body>
<?php
session_start();
$memorando = $_POST["memorando"];
$dateM = gravar_data($_POST["dateM"]);
$unidade = $_POST["unidade"];
$nome = $_POST["nome"];
$nr_matricula = $_POST["nr_matricula"];
$cargo = $_POST["cargo"];
$especialidade = $_POST["especialidade"];
$lotacao = $_POST["lotacao"];
$prazo = $_POST["prazo"];
$justificativa = $_POST["justificativa"];
$aux = count($prazo);
$jsonString = $_POST["jsonString"];
?>
<table class="table table-striped table-bordered">
<tr>
<?php
if(!adicionaSubstituido($conexao, $memorando, $dateM, $unidade, $nome, $nr_matricula, $cargo, $especialidade, $lotacao, $prazo, $justificativa)){
?>
<td><p class="text-danger"> Erro ao cadastrar!</p></td>
<?}
?>
</tr>
</table>
</body>
</html>Discussão (0)
Carregando comentários...