Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera,
A um tempo atrás conversei com o William Bruno e ele me deu a maior força neste mesmo problema, mas derepente tudo parou de funcionar...
O formulário não pratica a sua acão e se tirar o type='button' e substituir por type='submit' abre for da <DIV>
Alguém pode dar uma analisada por favor...
FUNCOES.JS
// FUNÇÃO AJAX
function GetXMLHttp(){
var xmlHttp;
try{
xmlHttp = new XMLHttpRequest();
}
catch(ee){
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
xmlHttp = false;
}
}
}
return xmlHttp;
}
var xmlRequest = GetXMLHttp();
// FUNÇÃO QUE PEGA OS LINKs DE CADA PÁGINA
function Pag(valor){
var url = valor;
xmlRequest.onreadystatechange = mostraPag;
xmlRequest.open("GET",url,true);
xmlRequest.send(null);
if(xmlRequest.readyState == 1){
document.getElementById("conteudo").innerHTML = "<img alt='carregando...' src='../imagens/carregando.gif'>";
}
return url;
}
// FUNÇÃO QUE FAZ COM QUE ABRA AS PÁGINAS NA DIV 'CONTEÚDO'
function mostraPag(){
if(xmlRequest.readyState == 4){
document.getElementById("conteudo").innerHTML = xmlRequest.responseText;
}
}
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <INPUTs> DOS FORMULÁRIOS
function form2Qs(form_ajax){
var form = document.getElementById(form_ajax);
var inputs = form.getElementsByTagName('input');
var dados = '';
for( var i=0; i<inputs.length; i++ ){
dados += inputs[i].name+'='+inputs[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <TEXTAREAs> DOS FORMULÁRIOS
function form3Qs(form_ajax){
var form = document.getElementById(form_ajax);
var textareas = form.getElementsByTagName('textarea');
var dados = '';
for( var i=0; i<textareas.length; i++ ){
dados += textareas[i].name+'='+textareas[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <SELECTs> DOS FORMULÁRIOS
function form4Qs(form_ajax){
var form = document.getElementById(form_ajax);
var selects = form.getElementsByTagName('select');
var dados = '';
for( var i=0; i<selects.length; i++ ){
dados += selects[i].name+'='+selects[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE RECEBE TODOS OS NOMES E VALORES DE TODOS OS <INPUTs> E <TEXTAREAa> RECOLHIDOS DOS FORMULÁRIOS
function f_ajx(){
var url = id('form_ajax').action;
xmlRequest.open("POST", url, true);
xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var dados = '?'+form2Qs('form_ajax')+form3Qs('form_ajax')+form4Qs('form_ajax')+'&funcao='+document.getElementById('funcao').value;
xmlRequest.send(dados);
xmlRequest.onreadystatechange = function(){
id("conteudo").innerHTML = xmlRequest.responseText;
}
}
function id(el){
return document.getElementById(el);
}
NOTICIAS.PHP
<?php
$funcao = $_GET['funcao'];
/***********************************************************/
/***************** INSERIR NOTÍCIAS ********************/
if($funcao == "inserir"){
echo "
<form action=\"#\" id='form_ajax' method='post'>
<input name='funcao' type='hidden' value='cadastrar' />
<label>Título</label><br />
<input class='dados_resp' id='titulo' name='titulo' type='text' size='60' /><br /><br />
<label>Chamada</label><br />
<textarea class='dados_resp' onkeyup='blocTexto(this.value)' name='chamada' style='width:46%' rows='4'></textarea><br />
<div class='exemplo' style='width:386px; text-align:right;'>
Caracteres restantes: <span id='cont'>200</span>
</div><br />
<label>Reporter</label><br />
<input class='dados_resp' id='reporter' name='reporter' type='text' size='60' /><br /><br />
<textarea class='dados_resp' id='texto' name='texto' style='width:98%' rows='10'></textarea><br /><br />
<label>Status</label><br />
<select name='status' class='dados_resp'>
<option value=''></option>
<option value='sim'>Sim</option>
<option value='nao'>Não</option>
</select><br />
<input class='formulario' onclick='f_ajx()' type='button' value='Cadastrar' />
</form>";
if($funcao == "cadastrar"){
$diretorio = '../xxxxx/xxxxx/noticias/';
$pesoMax = '5000000'; //Corresponde a 10Mb
$imagem = $_FILES['img'];
if($imagem['size'] > $pesoMax){
echo '<script type="text/javascript">
alert("Arquivo muito grande, o arquivo deve ter no máximo 5Mb");
history.back();
</script>';
exit;
}else{
$caminho = $diretorio.$imagem['name'];
if(move_uploaded_file($imagem['tmp_name'], $caminho) == ""){
echo '<script type="text/javascript">
alert("Selecione a imagem desejada!");
history.back();
</script>';
}else{
$casas = strlen($imagem['name']) -4;
$extensao = substr($imagem['name'], -4, 4);
$aqv = substr($imagem['name'], 0, $casas);
$img = strtolower(remover($aqv).$extensao);
$tabela_ = "xxxxx";
$campos_ = "empresa, coordenadoria, titulo, chamada, imagem, reporter, texto, status, ipcad, cadastradopor, datacad, horacad";
$valores_ = "'".$_SESSION['empresa']."', '".$_POST['coordenadoria']."', '".$_POST['titulo']."', '".$_POST['chamada']."', '".$img."', '".$_POST['reporter']."', '".$_POST['texto']."', '".$_POST['status']."', '".$ip."', '".$_SESSION['nome']."', '".$data."', '".$hora."'";
$alertap_ = "A notícia foi cadastrada com sucesso!";
$alertan_ = "Ocorreu um erro! Tente novamente mais tarde.";
$redirecionar_ = "noticias.php";
inserir($tabela_, $campos_, $valores_, $alertap_, $alertan_, $redirecionar_);
}
}
}
?>
Pensei que desta forma fosse me ajudar, mas cada dia um problema diferente...
Acho que vou voltar para o IFRAME mesmo kkkkk
valew galera...
consegui fazer mas ainda esta dando erro no retorno dos dados...
O que não estou conseguindo fazer é pegar alguns dados do formulário pelo JAVASCRIPT e recuperar via POST.
Notei que tem hora que funciona normal e tem hora que não funciona, principalmente quando tento pegar o valor de um <INPUT>
Para pegar os valores, fiz um LOOP assim:
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <INPUTs> DOS FORMULÁRIOS
function form2Qs(form_ajax){
var form = document.getElementById(form_ajax);
var inputs = form.getElementsByTagName('input');
var dados = '';
for( var i=0; i<inputs.length; i++ ){
dados += inputs[i].name+'='+inputs[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <TEXTAREAs> DOS FORMULÁRIOS
function form3Qs(form_ajax){
var form = document.getElementById(form_ajax);
var textareas = form.getElementsByTagName('textarea');
var dados = '';
for( var i=0; i<textareas.length; i++ ){
dados += textareas[i].name+'='+textareas[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE DA UM 'LOOP' PARA PEGAR O NOME E VALOR DE TODOS OS <SELECTs> DOS FORMULÁRIOS
function form4Qs(form_ajax){
var form = document.getElementById(form_ajax);
var selects = form.getElementsByTagName('select');
var dados = '';
for( var i=0; i<selects.length; i++ ){
dados += selects[i].name+'='+selects[i].value+'&';
}
return dados;
}
// FUNÇÃO QUE RECEBE TODOS OS NOMES E VALORES DE TODOS OS <INPUTs> E <TEXTAREAa> RECOLHIDOS DOS FORMULÁRIOS
function f_ajx(){
var url = id('form_ajax').action;
xmlRequest.open("POST", url, true);
xmlRequest.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
var dados = '?'+form2Qs('form_ajax')+form3Qs('form_ajax')+form4Qs('form_ajax');
xmlRequest.send(dados);
xmlRequest.onreadystatechange = function(){
id("conteudo").innerHTML = xmlRequest.responseText;
}
}
Será que pode ter alguma coisa que quando pega o INPUT, não funcione o TEXTAREA ou o SELECT?Carregando comentários...