Comunidad de diseño web y desarrollo en internet online

se puede seleccionar un boton en particular con ajax?

Citar            
MensajeEscrito el 06 Dic 2010 12:18 am
Hola a todos nesesito una mano por favor:
1º disculpen el lenguaje poco tecnico pues solo soy un autodidacta y lo mas probable es ke nome exprese en forma correcta en muchos terminos pero voy a intentar hacerme entender.

mi intencion es hacer un panel con opciones a elejir y dicho panel es creado dinamicamente y al darle click a la opcion elejida deve aparecer un mensaje de ke se hiso click en ede boton y no en todos los demas pues bien hasta ahoar logre hacer ke al darle click a un boton en particular se cargue en forma asincrona el contenido correspondiente pero no logro hacer ke aparesca antes un mensaje de ke se esta cargando o prosesando el contenido si pudieran guiarme les agradeseria, el problema lo tengo al hacer ke el boton clikeado sea modificado pues no logro ke ajax entienda cual boton esn porke se crean dinamicamente. aki el codigo para ke lo entiendan
este es el codigo ajax

Código HTML :

<script type="text/javascript"> 
$(document).ready(function() {
   $(".boton").click(function(event) {
      var accion = $(this).attr("name");
      $(":button").css("display", "none"); <!-- como hago para seleccionar el boton con el  name ke coincide con la variable "accion" -->
      $("#noticias").load('verNoticia.php',{acc:accion});
   });
});
</script>

Código PHP :

        
<?php

$sql = "SELECT n_id, n_fecha, n_cort, n_noticias, n_usuario, DATE_FORMAT(n_fecha, '%d/%m/%Y %H:%i:%s') as n_fecha FROM noti ORDER BY n_id DESC";

$rs = mysql_query($sql, $conect);

// Leemos el contenido de la plantilla de temas
$a = 0;
$row = mysql_fetch_assoc($rs);
while($row = mysql_fetch_assoc($rs)) {
   if($a < 15){
      if($row['n_usuario'] != NULL ){
         $foto = utf8_encode($row['n_usuario']);
      }else{
         $foto = "imagen/nn.gif";
      }
      echo"<div id=\"cuadroNoticias\">";
      echo"<div class=\"cuadroNoticiasFoto\"><img src=\"$foto\" alt=\"\" width=\"97\" height=\"92\" border\"0\"/></div>";              
      echo"<div class=\"cuadroNoticiasTitulo\">".utf8_encode($row['n_fecha'])."</div>";
      echo"<div class=\"cuadroNoticiasTexto\">".utf8_encode($row['n_cort'])."</div>";
      echo"<div style=\"clear: both;\">&nbsp;</div>";
      echo"<p><div id=\"botonera\"><input name=\"".$row['n_id']."\" type=\"button\" value=\" LEER MAS... \" class=\"boton\"/></div>";
      echo"</div>";
      $a++;
   }
}

?>


soy un novato total por favor les pido una mano gracias

Por JaVIChO

18 de clabLevel



 

msie8
Citar            
MensajeEscrito el 06 Dic 2010 01:55 am
Dos opciones,

Puedes intentar en la funcion javaScript, algo así alert(this.name) no estoy seguro del resultado pero debería hacer referencia al botón al que le diste click, y aparecerá el atributo que le asignaste al botón en name="".

Y mas a la fija, en lugar de crer $(".boton").click(function(event) {}, Create las instancias de botón de la siguiente forma.

<input type="submit" name="button1" id="button1" value="Submit" onclick="javascript:ClickButton(this)">
// en onClick llamamos a la función "ClickButton" y le pasamos la instancia del boton con "this"

Y una función JS de la siguiente manera
<script>
function ClickButton(object){ // Object es la instancia de botón que le estamos pasando al hacer click
alert(object.name); // aquí imprime el nombre al boton que le diste click
}
</script>

Espero que esto te sirva para solucionar el problema. Chau

Por tufik2

30 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Dic 2010 06:27 pm
ok muchas gracias voy a intentarlo

Por JaVIChO

18 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Dic 2010 07:21 pm
Pues bien, intente lo que me dijiste y me doy cuenta ke en realidad lo ke nesesito no es hacer referencia al boton, mas bien nesesito hacer referencia a un div ke encierra el tontenido en general de la noticia en particular para eliminarlo y cargar en ese div toda la noticia sin modificar el resto del contenido de la pagina. se me a ocurrido que haciendo un div con el nº de ID en la tabla sql aria que cada noticia tenga esa particularidad de poder indicar a cual noticia es, el tema es ahora como hago referencia al div en particular. te pongo la modificacion ke hise a ver si puedes darme una mano (pido mil disculpas pero soy muy novato)
<script type="text/javascript">
$(document).ready(function() {
$(".boton").click(function(event) {
var accion = $(this).attr("name");
$("#accion").fadeOut();
consulta = $("#noticias").load('verNoticia.php',{acc:accion});
});
});
</script>

Código PHP :

$sql = "SELECT n_id, n_fecha, n_cort, n_noticias, n_usuario, DATE_FORMAT(n_fecha, '%d/%m/%Y %H:%i:%s') as n_fecha FROM noti ORDER BY n_id DESC";

$rs = mysql_query($sql, $conect);

// Leemos el contenido de la plantilla de temas
$a = 0;
$row = mysql_fetch_assoc($rs);
while($row = mysql_fetch_assoc($rs)) {
   if($a < 15){
      if($row['n_usuario'] != NULL ){
         $foto = utf8_encode($row['n_usuario']);
      }else{
         $foto = "imagen/nn.gif";
      }
      echo"<div id=\"cuadroNoticias\">";
      echo"<div id=\"".$row['n_id']."\">"; // ESTE DIV ES EL KE KIERO KE DESAPARESCA Y SE CARGUE AKI LA NOTICIA CORRESPONDIENTE AL n_id de mYsql;
      echo"<div class=\"cuadroNoticiasFoto\"><img src=\"$foto\" alt=\"\" width=\"97\" height=\"92\" border\"0\"/></div>";              
      echo"<div class=\"cuadroNoticiasTitulo\">".utf8_encode($row['n_fecha'])."</div>";
      echo"<div class=\"cuadroNoticiasTexto\">".utf8_encode($row['n_cort'])."</div>";
      echo"<div style=\"clear: both;\">&nbsp;</div>";
      echo"<p><div id=\"botonera\"><input name=\"".$row['n_id']."\" type=\"button\" value=\" LEER MAS... \" class=\"boton\"/></div>";
      echo"</div>";
      echo"</div>";
      $a++;
   }
}
echo"</div>";

Por JaVIChO

18 de clabLevel



 

msie8
Citar            
MensajeEscrito el 26 Dic 2010 03:44 am
Si el div donde se aloja la noticia siempre va a ser estatico y siempre va a tener el mismo nombre puedes poner
$("#cuadroNoticias") donde cuadroNoticias es el id del DIV.

Si necesitas remplazar el html dentro del div, si no estoy mal se hace algo asi:
$("#cuadroNoticias").html(variable_con_nuevo_contenido);

Si lo que quieres es agregar sin borrar lo que ya hay dentro del div
$("#cuadroNoticias").append(variable_con_nuevo_contenido);

Si son muchos divs y cada uno lo necesitas diferencias ponle al div que quieres remplazar un id unico como:
id="cuadroNoticias1"
id="cuadroNoticias2"
id="cuadroNoticias3"

y en el boton como name le puedes poner btn_cuadroNoticias1, btn_cuadroNoticias2, btn_cuadroNoticias3, al leer el atributo name del boton, le puedes suprimir por JavaScript el indicador btn_ y quedaria solo el nombre del div real = cuadroNoticias1

Good lucky, espero que te sea util

Por tufik2

30 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.