Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #58 da revista programar. Faz já o download aqui!

david_carlos

duvida no ajax jquery

Mensagens Recomendadas

david_carlos    0
david_carlos

Boas, tenho aqui uma pagina que me faz uma acualizaçao de uma div. o que a pagina tem. Mostras as fotos que o projecto tem dpois da para fazer upload de uma nova foto na qual é enviado o id por ajax para a pagina php para me mostrar um select com as fotos todas incluindo a ultina.

so que o select que faço nao me mostra a ultima foto o que estou a errar

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    274
KTachyon

Aquilo que estás a errar é uma boa pergunta. Só o facto de não se saber como estás a fazer é que torna difícil responder à pergunta.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
david_carlos    0
david_carlos

então eu tenho este código

index:

<?php
$id_projecto = $row['id_projectos'];
?>
<script type="text/javascript">

$(document).ready(function()
{
$("#submit-btn").click(function(){

var id_pro = '<?=$id_projecto?>';

  $.ajax({
  type: "POST",
  url: 'teste_fotos.php',
  data: {id:id_pro},
  success:function(data){
   console.log(data);
   $(".global2").hide();
   $(".global").html(data);


  }


  });

});
});

</script>
<div class="window" id="janela1">
<div class="global">
  <a href="#" class="fechar"  style=" color:#000000">X Fechar  falta apresentar depois upload </a>


  <a href="#" onclick="javascript: exibe('upload-wrapper');" ><img src="images/add.png" width="20" height="20" ></a>

  <div id="upload-wrapper" style="display: none;">
  <div align="center">
  <form action="processupload.php?id=<?php echo $row['id_projectos'];?>" method="post" enctype="multipart/form-data" id="MyUploadForm" class="form">

  <input name="FileInput" id="FileInput" type="file"  />
  <input type="submit"  id="submit-btn" value="Upload"  />
  <img src="images/ajax-loader.gif" id="loading-img" style="display:none;" alt="Please Wait" width="100"  height="100"/>
  </form>
  <div id="progressbox" ><div id="progressbar"></div ><div id="statustxt">0%</div></div>
  <div id="output"></div>
  </div>
 </div>
<div class="global2">
<?php 

 #echo "<p style='color:red;'>".$row['id_projectos']."</p>";
$id_projecto =$row['id_projectos'];
$sqlteste = "select * from fotos WHERE id_projectos='$id_projecto'";
$queryteste = mysql_query($sqlteste);

$cont = "0";
  echo "<table border=1 ><tr>";
//Inicia a tabela
while($row = mysql_fetch_assoc($queryteste)){ //Loop até encontrar o resultado desejado(talvez não seja isso que está escrito).
if($cont == "3"){ //Se a variável possuir valor 3, fecha a linha atual e inicia outra linha(da tabela) e retorna o valor da variável para zero.
   echo "</tr><br><tr>";

$cont = "0";
}
echo "<td align=center width=\"180\" oncontextmenu=\"return false\" class=\"show\">
<img src="."img/fotos/".$row['foto']." width=\"120\" height=\"90\" >
<a href=\"#\" id=".$row['id_fotos']." class=\"delete\" title=\"Delete\"><img src=\"images/delete.png\"   width=\"20\" height=\"20\" /></a><br>"; //ao click imagem de marca  cria url
echo "</td>"; //Até aqui simplesmente escreve a célula.
$cont++; //Incrementa 1 na variável
}
echo "</tr></table>"; //Após o loop, a tabela é fechada.
?>
</div></div>

PHP que ira actualizar

<?php include("mysql.php");
if(isset($_POST['id'])){
$id_projecto = $_POST['id'];#"119";
echo $id_projecto;
$sqlteste = "select * from fotos WHERE id_projectos='$id_projecto'";
$queryteste = mysql_query($sqlteste);

$cont = "0";
  echo "<table border=1 ><tr>";

//Inicia a tabela
while($row = mysql_fetch_assoc($queryteste)){ //Loop até encontrar o resultado desejado(talvez não seja isso que está escrito).
if($cont == "3"){ //Se a variável possuir valor 3, fecha a linha atual e inicia outra linha(da tabela) e retorna o valor da variável para zero.
   echo "</tr><br><tr>";

$cont = "0";
}
echo "<td align=center width=\"180\" oncontextmenu=\"return false\" class=\"show\">
<img src="."img/fotos/".$row['foto']." width=\"120\" height=\"90\" >
<a href=\"#\" id=".$row['id_fotos']." class=\"delete\" title=\"Delete\"><img src=\"images/delete.png\"   width=\"20\" height=\"20\" /></a><br>"; //ao click imagem de marca  cria url
echo "</td>"; //Até aqui simplesmente escreve a célula.
$cont++; //Incrementa 1 na variável
}
echo "</tr></table>"; //Após o loop, a tabela é fechada.
}else{
echo "NAO";
}
?>

podem me dar uma ajuda

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    274
KTachyon

Não sei bem por onde começar. Mas vamos por partes:

Tu tens um form cujo formato indica que pretendes fazer um POST. Ao mesmo tempo, criaste um bind com o jQuery para, quando clicares no botão de submit, fazeres um POST via ajax que eu não percebo muito bem para que serve. Como tu não impediste que a form fosse submetida no click ou num bind ao submit da form, vais estar a fazer duas chamadas ao servidor. Uma que faz o upload (o form submit) e outra que é um POST ao teste_fotos.php.

Ora, o upload através do form e o pedido no click vão acontecer os dois ao mesmo tempo. Não me parece que seja isso que pretendes. Para além disso, como estás a permitir o submit da form, o upload do ficheiro vai causar um refresh da tua página, o que impede a tua tentativa de utilizares chamadas ajax para apresentares partes da página sem fazeres um refresh completo.

Ou seja, para poderes fazer o que pretendes, parece-me que precisas de controlar o upload também por ajax e impedir que a form seja submetida pelos meios naturais do browser, fazendo bind e fazendo um preventDefault().

Felizmente que existe uma biblioteca muito boa para gerir os uploads via ajax, por isso não precisas de reinventar a roda. Podes encontra-la no seguinte url:

https://github.com/blueimp/jQuery-File-Upload

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.