Foros del Web » Programando para Internet » Jquery »

Por qué no funciona esto?

Estas en el tema de Por qué no funciona esto? en el foro de Jquery en Foros del Web. Buenas, Tengo estos archivos: index.php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script type = "text/javascript" >         function edit ( ...
  #1 (permalink)  
Antiguo 12/01/2013, 12:35
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación Por qué no funciona esto?

Buenas,

Tengo estos archivos:

index.php

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.         function edit(str){
  3.             var xmlhttp;
  4.             if (window.XMLHttpRequest)
  5.               {
  6.               xmlhttp=new XMLHttpRequest();
  7.               }
  8.             else
  9.               {
  10.               xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11.               }
  12.           xmlhttp.onreadystatechange=function()
  13.               {
  14.               if (xmlhttp.readyState==4 && xmlhttp.status==200)
  15. document.getElementById("editdialog").innerHTML=conection.responseText;                
  16. $( "#editdialog" ).dialog({
  17.                 autoOpen: true,
  18.                 width: 425
  19.                 });
  20.               }
  21.           xmlhttp.open("GET","edit.php?id="+str,true);
  22.             xmlhttp.send();
  23.         }
  24.     </script>
  25.  
  26. $query=mysql_result(SELECT * FROM paises)
  27.  
  28. while ($row = mysql_fetch_assoc($query)) {
  29.       echo $row['pais'];
  30.       echo "<a href=\"#\" onclick=\"edit('".$row["ICAO"]."')\">Edit</a>";
  31. }
  32.  
  33. ?>
  34. <div id="editdialog" title="Edit"></div>

y el edit.php

Código Javascript:
Ver original
  1. <script src="./jquery.js"></script>
  2.     <script src="./ui/jquery.ui.widget.js"></script>
  3.     <script src="./ui/jquery.ui.button.js"></script>
  4.     <script src="./ui/jquery.ui.core.js"></script>
  5.     <script src="./ui/jquery.ui.widget.js"></script>
  6.     <script src="./ui/jquery.ui.mouse.js"></script>
  7.     <script src="./ui/jquery.ui.button.js"></script>
  8.     <script src="./ui/jquery.ui.draggable.js"></script>
  9.     <script src="./ui/jquery.ui.position.js"></script>
  10.     <script src="./ui/jquery.ui.resizable.js"></script>
  11.     <script src="./ui/jquery.ui.dialog.js"></script>
  12.     <script src="./ui/jquery.ui.effect.js"></script>
  13.  
  14. <script>
  15.     $(function() {
  16.         $("#editaircraft")
  17.             .button()
  18.             .click(function(event) {
  19.         });
  20.     });
  21. </script>
  22.  
  23. <?php
  24. require_once ('config.php');
  25. $icao = $_REQUEST["icao"];
  26.  
  27. echo '<tr><td class="forms">Number Classes:</td><td><select id="numberclasses" name="numberclasses">';
  28.         echo "<option value='0'>Select Number of Classes</option>";
  29.         echo "<option value='1'>One Classes (Economy)</option>";
  30.         echo "<option value='2'>Two Classes (Business & Economy)</option>";
  31.         echo "<option value='3'>Three Classes (First, Business & Economy)</option>";
  32. echo '</select></td></tr>';
  33.  
  34.  
  35.  
  36. echo '<tr><td class="forms">First Class Seats:</td><td><input disabled="disabled" type="text" id="firstclassseats" name="firstclassseats" size="30" value=';
  37. echo $row["FirstClassSeats"] . "></td></tr>";
  38.  
  39.  
  40. echo '<tr><td class="forms">Business Class Seats:</td><td><input disabled="disabled" type="text" id="businessclassseats" name="businessclassseats" size="30" value=';
  41. echo $row["BusinessClassSeats"] . "></td></tr>";
  42.  
  43. echo '<tr><td class="forms">Economy Class Seats:</td><td><input disabled="disabled" type="text" id="economyclassseats" name="economyclassseats" size="30" value=';
  44. echo $row["EconomyClassSeats"] . "></td></tr>";
  45.  
  46. ?>
  47.  
  48. <script>
  49.  
  50. $("#numberclasses").change(function() {
  51. value = $(this).val();
  52.  
  53. str = parseInt(value);
  54.  
  55. switch(str)
  56.   {
  57.     case 0:
  58.     $(document).ready(function() {
  59.         $("#firstclassseats").attr("disabled","disabled");
  60.         $("#businessclassseats").attr("disabled","disabled");
  61.         $("#economyclassseats").attr("disabled","disabled");
  62. });
  63.     break;
  64.  
  65.     case 1:
  66.     $(document).ready(function() {
  67.         $("#economyclassseats").removeAttr('disabled');
  68.         $("#firstclassseats").attr("disabled","disabled");
  69.         $("#businessclassseats").attr("disabled","disabled");
  70. });
  71.     break;
  72.  
  73.      case 2:
  74.     $(document).ready(function() {
  75.         $("#businessclassseats").removeAttr('disabled');
  76.         $("#economyclassseats").removeAttr('disabled');
  77.         $("#firstclassseats").attr("disabled","disabled");
  78. });
  79.     break;
  80.  
  81.     case 3:
  82.     $(document).ready(function() {
  83.         $("#firstclassseats").removeAttr('disabled');
  84.         $("#businessclassseats").removeAttr('disabled');
  85.         $("#economyclassseats").removeAttr('disabled');
  86. });
  87.     break;
  88.  
  89.   }
  90. });
  91.  
  92. </script>
  93.  
  94. <?php
  95.  
  96. echo "<tr><td><input id='editaircraft' type='submit' value='Edit Aircraft'></td></tr>";
  97.  
  98. echo "</table>";
  99. ?>
  100.  
  101. </form>

El problema está en este script:

Código Javascript:
Ver original
  1. $("#numberclasses").change(function() {
  2. value = $(this).val();
  3.  
  4. str = parseInt(value);
  5.  
  6. switch(str)
  7.   {
  8.     case 0:
  9.     $(document).ready(function() {
  10.         $("#firstclassseats").attr("disabled","disabled");
  11.         $("#businessclassseats").attr("disabled","disabled");
  12.         $("#economyclassseats").attr("disabled","disabled");
  13. });
  14.     break;
  15.  
  16.     case 1:
  17.     $(document).ready(function() {
  18.         $("#economyclassseats").removeAttr('disabled');
  19.         $("#firstclassseats").attr("disabled","disabled");
  20.         $("#businessclassseats").attr("disabled","disabled");
  21. });
  22.     break;
  23.  
  24.      case 2:
  25.     $(document).ready(function() {
  26.         $("#businessclassseats").removeAttr('disabled');
  27.         $("#economyclassseats").removeAttr('disabled');
  28.         $("#firstclassseats").attr("disabled","disabled");
  29. });
  30.     break;
  31.  
  32.     case 3:
  33.     $(document).ready(function() {
  34.         $("#firstclassseats").removeAttr('disabled');
  35.         $("#businessclassseats").removeAttr('disabled');
  36.         $("#economyclassseats").removeAttr('disabled');
  37. });
  38.     break;
  39.  
  40.   }
  41. });
  42.  
  43. </script>

Ese script debe de cambiar los disabled de los input o dejarlos en función del select. Si yo esto lo hago directamente en el archivo edit.php todo funciona bien. Pero si yo lo hago en desde el index.php con el script Ajax no funciona. No activa ni desactiva nada.

PD: En el index.php el script no tiene valor la variable str que es la que tiene el valor del select.

Última edición por carlosuc99; 12/01/2013 a las 13:27
  #2 (permalink)  
Antiguo 12/01/2013, 14:29
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Por qué no funciona esto?

En casos así te conviene postear el html generado y no la mezcla de php / html / js.

No estoy seguro del problema, pero asi a simple vista un par de observaciones.
Si ya está usando jQuery, por que no aprovechás y usas $ajax, $post, etc en lugar de crear una función ajax?
segundo

no seria más lógico esto
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2. $("#numberclasses").change(function() {
  3. value = $(this).val();
  4.  
  5. str = parseInt(value);
  6.  
  7. switch(str){
  8.     case 0:
  9.  
  10.         $("#firstclassseats").attr("disabled","disabled");
  11.         $("#businessclassseats").attr("disabled","disabled");
  12.         $("#economyclassseats").attr("disabled","disabled");
  13.  
  14.     break;
  15.  
  16.  
  17. /// el resto de los switch..
  18. }
  19. });
que instanciar un $(document).ready(function(){... en cada uno

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 12/01/2013, 14:48
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación Respuesta: Por qué no funciona esto?

Cita:
Iniciado por emprear Ver Mensaje
En casos así te conviene postear el html generado y no la mezcla de php / html / js.

No estoy seguro del problema, pero asi a simple vista un par de observaciones.
Si ya está usando jQuery, por que no aprovechás y usas $ajax, $post, etc en lugar de crear una función ajax?
segundo

no seria más lógico esto
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2. $("#numberclasses").change(function() {
  3. value = $(this).val();
  4.  
  5. str = parseInt(value);
  6.  
  7. switch(str){
  8.     case 0:
  9.  
  10.         $("#firstclassseats").attr("disabled","disabled");
  11.         $("#businessclassseats").attr("disabled","disabled");
  12.         $("#economyclassseats").attr("disabled","disabled");
  13.  
  14.     break;
  15.  
  16.  
  17. /// el resto de los switch..
  18. }
  19. });
que instanciar un $(document).ready(function(){... en cada uno

Saludos
Dejándolo así, pasa lo mismo que con el script inicial.

Código Javascript:
Ver original
  1. $(document).ready(function() {
  2. $("#numberclasses").change(function() {
  3. value = $(this).val();
  4.  
  5. str = parseInt(value);
  6. switch(str)
  7.   {
  8.     case 0:
  9.     $(document).ready(function() {
  10.         $("#firstclassseats").attr("disabled","disabled");
  11.         $("#businessclassseats").attr("disabled","disabled");
  12.         $("#economyclassseats").attr("disabled","disabled");
  13. });
  14.     break;
  15.  
  16.     case 1:
  17.     $(document).ready(function() {
  18.         $("#economyclassseats").removeAttr('disabled');
  19.         $("#firstclassseats").attr("disabled","disabled");
  20.         $("#businessclassseats").attr("disabled","disabled");
  21. });
  22.     break;
  23.  
  24.      case 2:
  25.     $(document).ready(function() {
  26.         $("#businessclassseats").removeAttr('disabled');
  27.         $("#economyclassseats").removeAttr('disabled');
  28.         $("#firstclassseats").attr("disabled","disabled");
  29. });
  30.     break;
  31.  
  32.     case 3:
  33.     $(document).ready(function() {
  34.         $("#firstclassseats").removeAttr('disabled');
  35.         $("#businessclassseats").removeAttr('disabled');
  36.         $("#economyclassseats").removeAttr('disabled');
  37. });
  38.     break;
  39.  
  40.   }
  41. });
  42. });
  #4 (permalink)  
Antiguo 12/01/2013, 15:08
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Por qué no funciona esto?

Como te dije , posteá el html generado completo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 12/01/2013, 15:10
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación Respuesta: Por qué no funciona esto?

Cita:
Iniciado por emprear Ver Mensaje
Como te dije , posteá el html generado completo

Saludos
Te explico, te pongo el HTML generado del DIV ya que si pongo el completo es demasiado. Ya que en el index.php también hay una tabla. Si necesitas más código pídelo:

Código HTML:
Ver original
  1. <div id="newaircraftdialog" title="New Aircraft">
  2.     <script>
  3.     $(function() {
  4.         $("#insertaircraft")
  5.             .button()
  6.             .click(function(event) {
  7.         });
  8.     });
  9.  
  10. <form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">
  11.     <table>
  12.  
  13.     <tr><td class="forms">ICAO:</td><td><input maxlength="4" type="text" name="icao" size="30"/></td></tr>
  14.  
  15.     <tr><td class="forms">Name:</td><td><input type="text" name="name" size="30"/></td></tr>
  16.  
  17.     <tr><td class="forms">Weight Empty:</td><td><input type="text" name="weightempty" size="30"/></td></tr>
  18.  
  19.     <tr><td class="forms">Weight Full:</td><td><input type="text" name="weightfull" size="30"/></td></tr>
  20.  
  21.     <tr><td class="forms">Cargo Full:</td><td><input type="text" name="cargofull" size="30"/></td></tr>
  22.  
  23.     <tr><td class="forms">Cruise Speed:</td><td><input type="text" name="cruisespeed" size="30"/></td></tr>
  24.  
  25.     <tr><td class="forms">Range:</td><td><input type="text" name="range" size="30"/></td></tr>
  26.  
  27.     <tr><td class="forms">Price:</td><td><input type="text" name="price" size="30"/></td></tr>
  28.  
  29.     <tr><td class="forms">Number Classes:</td><td><select id="numberclasses" name="numberclasses">
  30.         <option value="0">Select Number of Classes</option>
  31.         <option value="1">One Classes (Economy)</option>option value="2">Two Classes (Business & Economy)</option><option value="3">Three Classes (First, Business & Economy)</option>    </select></td></tr>
  32.  
  33.  
  34.  
  35.    <tr><td class="forms">First Class Seats:</td><td><input disabled="disabled" type="text" id="firstclassseats" name="firstclassseats" size="30"/></td></tr>
  36.  
  37.    <tr><td class="forms">Business Class Seats:</td><td><input disabled="disabled" type="text" id="businessclassseats" name="businessclassseats" size="30"/></td></tr>
  38.  
  39.    <tr><td class="forms">Economy Class Seats:</td><td><input disabled="disabled" type="text" id="economyclassseats" name="economyclassseats" size="30"/></td></tr>
  40.  
  41. <script>
  42.  
  43. $("#numberclasses").change(function() {
  44. value = $(this).val();
  45.  
  46. str = parseInt(value);
  47.  
  48. switch(str)
  49.   {
  50.     case 0:
  51.     $(document).ready(function() {
  52.         $("#firstclassseats").attr("disabled","disabled");
  53.         $("#businessclassseats").attr("disabled","disabled");
  54.         $("#economyclassseats").attr("disabled","disabled");
  55. });
  56.     break;
  57.  
  58.     case 1:
  59.     $(document).ready(function() {
  60.         $("#economyclassseats").removeAttr('disabled');
  61.         $("#firstclassseats").attr("disabled","disabled");
  62.         $("#businessclassseats").attr("disabled","disabled");
  63. });
  64.     break;
  65.  
  66.      case 2:
  67.     $(document).ready(function() {
  68.         $("#businessclassseats").removeAttr('disabled');
  69.         $("#economyclassseats").removeAttr('disabled');
  70.         $("#firstclassseats").attr("disabled","disabled");
  71. });
  72.     break;
  73.  
  74.     case 3:
  75.     $(document).ready(function() {
  76.         $("#firstclassseats").removeAttr('disabled');
  77.         $("#businessclassseats").removeAttr('disabled');
  78.         $("#economyclassseats").removeAttr('disabled');
  79. });
  80.     break;
  81.  
  82.   }
  83. });
  84.  
  85.  
  86.     <tr><td></td><td><input id="insertaircraft" type="submit" value="Insert Aircraft"/></td></tr>
  87.     </table>
  88. </form></div>
  #6 (permalink)  
Antiguo 12/01/2013, 16:33
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Por qué no funciona esto?

El problema principal es que button() no existe en jQuery (y si existe ni se para que sirve)
vos lo que necesitás es enviar el form con esa acción.
Te limpié un poco el html, pone todo tu javascript al final (queda muy desprolijo meterlo o dentro del div ó en las filas de la tabla, y el
$(document).ready(function()
sólo es necesario hacerlo una vez y dentro de el tus funciones
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. </head>
  8. <div id="newaircraftdialog" title="New Aircraft">
  9. <form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">
  10.     <table>
  11.     <tr><td class="forms">ICAO:</td><td><input maxlength="4" type="text" name="icao" size="30"/></td></tr>
  12.     <tr><td class="forms">Name:</td><td><input type="text" name="name" size="30"/></td></tr>
  13.     <tr><td class="forms">Weight Empty:</td><td><input type="text" name="weightempty" size="30"/></td></tr>
  14.     <tr><td class="forms">Weight Full:</td><td><input type="text" name="weightfull" size="30"/></td></tr>
  15.     <tr><td class="forms">Cargo Full:</td><td><input type="text" name="cargofull" size="30"/></td></tr>
  16.     <tr><td class="forms">Cruise Speed:</td><td><input type="text" name="cruisespeed" size="30"/></td></tr>
  17.     <tr><td class="forms">Range:</td><td><input type="text" name="range" size="30"/></td></tr>
  18.     <tr><td class="forms">Price:</td><td><input type="text" name="price" size="30"/></td></tr>
  19.     <tr><td class="forms">Number Classes:</td><td><select id="numberclasses" name="numberclasses">
  20.         <option value="0">Select Number of Classes</option>
  21.         <option value="1">One Classes (Economy)</option>option value="2">Two Classes (Business & Economy)</option><option value="3">Three Classes (First, Business & Economy)</option>    </select></td></tr>
  22.    <tr><td class="forms">First Class Seats:</td><td><input disabled="disabled" type="text" id="firstclassseats" name="firstclassseats" size="30"/></td></tr>
  23.     <tr><td class="forms">Business Class Seats:</td><td><input disabled="disabled" type="text" id="businessclassseats" name="businessclassseats" size="30"/></td></tr>
  24.     <tr><td class="forms">Economy Class Seats:</td><td><input disabled="disabled" type="text" id="economyclassseats" name="economyclassseats" size="30"/></td></tr>
  25.    <tr><td></td><td><input id="insertaircraft" type="submit" value="Insert Aircraft"/></td></tr>
  26.    </table>
  27. </form>
  28. </div>
  29. <script type="text/javascript">
  30. $(document).ready(function() {
  31. $("#insertaircraft").click(function(event) {
  32. event.preventDefault(); // si envías con ajax desde un botón submit
  33. alert('enviar x ajax');
  34. });
  35.    
  36. $("#numberclasses").change(function() {
  37. value = $(this).val();
  38. str = parseInt(value);
  39. switch(str){
  40.     case 0:
  41.         $("#firstclassseats").attr("disabled","disabled");
  42.         $("#businessclassseats").attr("disabled","disabled");
  43.         $("#economyclassseats").attr("disabled","disabled");
  44.     break;
  45.  
  46.     case 1:
  47.         $("#economyclassseats").removeAttr('disabled');
  48.         $("#firstclassseats").attr("disabled","disabled");
  49.         $("#businessclassseats").attr("disabled","disabled");
  50.     break;
  51.  
  52.      case 2:
  53.         $("#businessclassseats").removeAttr('disabled');
  54.         $("#economyclassseats").removeAttr('disabled');
  55.         $("#firstclassseats").attr("disabled","disabled");
  56.     break;
  57.  
  58.     case 3:
  59.         $("#firstclassseats").removeAttr('disabled');
  60.         $("#businessclassseats").removeAttr('disabled');
  61.         $("#economyclassseats").removeAttr('disabled');
  62.     break;
  63.  
  64.   }
  65.  });
  66.  });
  67. </body>
  68. </html>

Primero probalo en forma individual y después en lugar del alert usás $ajax ó $post de jQuery

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 12/01/2013, 17:11
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación Respuesta: Por qué no funciona esto?

Cita:
Iniciado por emprear Ver Mensaje
El problema principal es que button() no existe en jQuery (y si existe ni se para que sirve)
vos lo que necesitás es enviar el form con esa acción.
Te limpié un poco el html, pone todo tu javascript al final (queda muy desprolijo meterlo o dentro del div ó en las filas de la tabla, y el
$(document).ready(function()
sólo es necesario hacerlo una vez y dentro de el tus funciones
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  7. </head>
  8. <div id="newaircraftdialog" title="New Aircraft">
  9. <form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">
  10.     <table>
  11.     <tr><td class="forms">ICAO:</td><td><input maxlength="4" type="text" name="icao" size="30"/></td></tr>
  12.     <tr><td class="forms">Name:</td><td><input type="text" name="name" size="30"/></td></tr>
  13.     <tr><td class="forms">Weight Empty:</td><td><input type="text" name="weightempty" size="30"/></td></tr>
  14.     <tr><td class="forms">Weight Full:</td><td><input type="text" name="weightfull" size="30"/></td></tr>
  15.     <tr><td class="forms">Cargo Full:</td><td><input type="text" name="cargofull" size="30"/></td></tr>
  16.     <tr><td class="forms">Cruise Speed:</td><td><input type="text" name="cruisespeed" size="30"/></td></tr>
  17.     <tr><td class="forms">Range:</td><td><input type="text" name="range" size="30"/></td></tr>
  18.     <tr><td class="forms">Price:</td><td><input type="text" name="price" size="30"/></td></tr>
  19.     <tr><td class="forms">Number Classes:</td><td><select id="numberclasses" name="numberclasses">
  20.         <option value="0">Select Number of Classes</option>
  21.         <option value="1">One Classes (Economy)</option>option value="2">Two Classes (Business & Economy)</option><option value="3">Three Classes (First, Business & Economy)</option>    </select></td></tr>
  22.    <tr><td class="forms">First Class Seats:</td><td><input disabled="disabled" type="text" id="firstclassseats" name="firstclassseats" size="30"/></td></tr>
  23.     <tr><td class="forms">Business Class Seats:</td><td><input disabled="disabled" type="text" id="businessclassseats" name="businessclassseats" size="30"/></td></tr>
  24.     <tr><td class="forms">Economy Class Seats:</td><td><input disabled="disabled" type="text" id="economyclassseats" name="economyclassseats" size="30"/></td></tr>
  25.    <tr><td></td><td><input id="insertaircraft" type="submit" value="Insert Aircraft"/></td></tr>
  26.    </table>
  27. </form>
  28. </div>
  29. <script type="text/javascript">
  30. $(document).ready(function() {
  31. $("#insertaircraft").click(function(event) {
  32. event.preventDefault(); // si envías con ajax desde un botón submit
  33. alert('enviar x ajax');
  34. });
  35.    
  36. $("#numberclasses").change(function() {
  37. value = $(this).val();
  38. str = parseInt(value);
  39. switch(str){
  40.     case 0:
  41.         $("#firstclassseats").attr("disabled","disabled");
  42.         $("#businessclassseats").attr("disabled","disabled");
  43.         $("#economyclassseats").attr("disabled","disabled");
  44.     break;
  45.  
  46.     case 1:
  47.         $("#economyclassseats").removeAttr('disabled');
  48.         $("#firstclassseats").attr("disabled","disabled");
  49.         $("#businessclassseats").attr("disabled","disabled");
  50.     break;
  51.  
  52.      case 2:
  53.         $("#businessclassseats").removeAttr('disabled');
  54.         $("#economyclassseats").removeAttr('disabled');
  55.         $("#firstclassseats").attr("disabled","disabled");
  56.     break;
  57.  
  58.     case 3:
  59.         $("#firstclassseats").removeAttr('disabled');
  60.         $("#businessclassseats").removeAttr('disabled');
  61.         $("#economyclassseats").removeAttr('disabled');
  62.     break;
  63.  
  64.   }
  65.  });
  66.  });
  67. </body>
  68. </html>

Primero probalo en forma individual y después en lugar del alert usás $ajax ó $post de jQuery

SAludos
Ok, pero el verdadero problema no esta ahí. Como ya dije estaba en el otro scrpt y el otro script ya para empezar cuando lo llamaba desde el index.php no era capaz de obtener el resulta del select "numberofclasses" y en el archivo directamente no da problemas.

Con eso lo solucionare? Creo que con eso solo tacas el boton y eso funciona sin problemas.
  #8 (permalink)  
Antiguo 12/01/2013, 17:20
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: Por qué no funciona esto?

Es sencillo, si ponés esto

Código Javascript:
Ver original
  1. <script>
  2.     $(function() {
  3.         $("#insertaircraft")
  4.             .button()
  5.             .click(function(event) {
  6.         });
  7.     });
  8. </script>

la consola muestra

Error: TypeError: $("#insertaircraft").button is not a function
ni siquiera hace falta que presiones el botón, y ya el resto no funciona

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 13/01/2013, 03:48
 
Fecha de Ingreso: junio-2011
Mensajes: 342
Antigüedad: 13 años, 5 meses
Puntos: 5
Exclamación Respuesta: Por qué no funciona esto?

Cita:
Iniciado por emprear Ver Mensaje
Es sencillo, si ponés esto

Código Javascript:
Ver original
  1. <script>
  2.     $(function() {
  3.         $("#insertaircraft")
  4.             .button()
  5.             .click(function(event) {
  6.         });
  7.     });
  8. </script>

la consola muestra

Error: TypeError: $("#insertaircraft").button is not a function
ni siquiera hace falta que presiones el botón, y ya el resto no funciona

Saludos
El error no es ese. Lo he probado y no funciona. De hecho te di un código fuente que no era. En el mismo archivo tengo un botón "insertaircraft" que al clickar (no utilizo AJAX) se muestra y contiene un script similar al que da el error, pero aquí funciona. De hecho el códogo fuente al ser un request AJAX en este archivo no se ve. La única manera de verlo sería poniendo el archivo directamente en el navegador y poner el código fuente pero es una tontería porque ahí realmente funciona.

Como digo el 1er problema debe de estar en la obtención de select ya que en el archivo accediendo directamente he comprabado que el resultado se coge correctamente. Pero en el index.php donde se hace el request por AJAX no. Es muy extraño porque realmente es el mismo archivo solo que en un sitio en vez de estar presente lo llaman.

De todas maneras y es algo muy curioso mira el código fuente del archivo accediendo directamente:

Código HTML:
Ver original
  1. <script src="./jquery.js"></script>
  2.     <script src="./ui/jquery.ui.widget.js"></script>
  3.     <script src="./ui/jquery.ui.button.js"></script>
  4.     <script src="./ui/jquery.ui.core.js"></script>
  5.     <script src="./ui/jquery.ui.widget.js"></script>
  6.     <script src="./ui/jquery.ui.mouse.js"></script>
  7.     <script src="./ui/jquery.ui.button.js"></script>
  8.     <script src="./ui/jquery.ui.draggable.js"></script>
  9.     <script src="./ui/jquery.ui.position.js"></script>
  10.     <script src="./ui/jquery.ui.resizable.js"></script>
  11.     <script src="./ui/jquery.ui.dialog.js"></script>
  12.     <script src="./ui/jquery.ui.effect.js"></script>
  13.  
  14.    
  15. <form method="post" action="editar-ruta.php">
  16. <table border="0"></table>
  17. </form>

Parece que le faltan cosas que realmente están.
Te dejo el código del archivo que dá el problema edit.php

Código PHP:
Ver original
  1. <script src="./jquery.js"></script>
  2.     <script src="./ui/jquery.ui.widget.js"></script>
  3.     <script src="./ui/jquery.ui.button.js"></script>
  4.     <script src="./ui/jquery.ui.core.js"></script>
  5.     <script src="./ui/jquery.ui.widget.js"></script>
  6.     <script src="./ui/jquery.ui.mouse.js"></script>
  7.     <script src="./ui/jquery.ui.button.js"></script>
  8.     <script src="./ui/jquery.ui.draggable.js"></script>
  9.     <script src="./ui/jquery.ui.position.js"></script>
  10.     <script src="./ui/jquery.ui.resizable.js"></script>
  11.     <script src="./ui/jquery.ui.dialog.js"></script>
  12.     <script src="./ui/jquery.ui.effect.js"></script>
  13.  
  14.    
  15. <?php
  16. require_once ('config.php');
  17. $icao = $_REQUEST["icao"];
  18.  
  19. $query = "SELECT * FROM aircrafts WHERE ICAO = '$icao'";
  20.  
  21. $result = mysql_query($query);
  22. if (!$result)
  23. {
  24. }
  25.  
  26. ?>
  27. <form method="post" action="editar-ruta.php">
  28. <?php
  29. echo '<table border="0">';
  30. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  31.  
  32. echo '<tr><td class="forms">ICAO:</td><td><input type="text" name="icao" size="30" value=';
  33. echo $row["ICAO"] . "></td></tr>";
  34.  
  35. echo '<tr><td class="forms">Name:</td><td><input type="text" name="name" size="30" value=';
  36. echo $row["Name"] . "></td></tr>";
  37.  
  38. echo '<tr><td class="forms">Weight Empty:</td><td><input type="text" name="weightempty" size="30" value=';
  39. echo $row["WeightEmpty"] . "></td></tr>";
  40.  
  41. echo '<tr><td class="forms">Weight Full:</td><td><input type="text" name="weightfull" size="30" value=';
  42. echo $row["WeightFull"] . "></td></tr>";
  43.  
  44. echo '<tr><td class="forms">Cargo Full:</td><td><input type="text" name="cargofull" size="30" value=';
  45. echo $row["CargoFull"] . "></td></tr>";
  46.  
  47. echo '<tr><td class="forms">Cruise Speed:</td><td><input type="text" name="cruisespeed" size="30" value=';
  48. echo $row["CruiseSpeed"] . "></td></tr>";
  49.  
  50. echo '<tr><td class="forms">Range:</td><td><input type="text" name="range" size="30" value=';
  51. echo $row["Range"] . "></td></tr>";
  52.  
  53. echo '<tr><td class="forms">Price:</td><td><input type="text" name="price" size="30" value=';
  54. echo $row["Price"] . "></td></tr>";
  55.  
  56. echo '<tr><td class="forms">Number Classes:</td><td><select id="numberclasses" name="numberclasses">';
  57.         echo "<option value='0'>Select Number of Classes</option>";
  58.         echo "<option value='1'>One Classes (Economy)</option>";
  59.         echo "<option value='2'>Two Classes (Business & Economy)</option>";
  60.         echo "<option value='3'>Three Classes (First, Business & Economy)</option>";
  61. echo '</select></td></tr>';
  62.  
  63. if($row["FirstClassSeats"] == NULL || $row["FirstClassSeats"] == 0){$disabled1 = "disabled='disabled'";}
  64.  
  65. echo '<tr><td class="forms">First Class Seats:</td><td><input '.$disabled1.' type="text" id="firstclassseats" name="firstclassseats" size="30" value=';
  66. echo $row["FirstClassSeats"] . "></td></tr>";
  67.  
  68. if($row["BusinessClassSeats"] == NULL || $row["BusinessClassSeats"] == 0){$disabled2 = "disabled='disabled'";}
  69.  
  70. echo '<tr><td class="forms">Business Class Seats:</td><td><input '.$disabled2.' type="text" id="businessclassseats" name="businessclassseats" size="30" value=';
  71. echo $row["BusinessClassSeats"] . "></td></tr>";
  72.  
  73. if($row["EconomyClassSeats"] == NULL || $row["EconomyClassSeats"] == 0){$disabled3 = "disabled='disabled'";}
  74.  
  75. echo '<tr><td class="forms">Economy Class Seats:</td><td><input '.$disabled3.' type="text" id="economyclassseats" name="economyclassseats" size="30" value=';
  76. echo $row["EconomyClassSeats"] . "></td></tr>";
  77.  
  78. ?>
  79.  
  80. <script type="text/javascript">
  81. $(document).ready(function() {
  82. $("#editaircraft").click(function(event) {
  83. event.preventDefault(); // si envías con ajax desde un botón submit
  84. alert('enviar x ajax');
  85. });
  86.    
  87. $("#numberclasses").change(function() {
  88. value = $(this).val();
  89. str = parseInt(value);
  90. switch(str){
  91.     case 0:
  92.         $("#firstclassseats").attr("disabled","disabled");
  93.         $("#businessclassseats").attr("disabled","disabled");
  94.         $("#economyclassseats").attr("disabled","disabled");
  95.     break;
  96.  
  97.     case 1:
  98.         $("#economyclassseats").removeAttr('disabled');
  99.         $("#firstclassseats").attr("disabled","disabled");
  100.         $("#businessclassseats").attr("disabled","disabled");
  101.     break;
  102.  
  103.      case 2:
  104.         $("#businessclassseats").removeAttr('disabled');
  105.         $("#economyclassseats").removeAttr('disabled');
  106.         $("#firstclassseats").attr("disabled","disabled");
  107.     break;
  108.  
  109.     case 3:
  110.         $("#firstclassseats").removeAttr('disabled');
  111.         $("#businessclassseats").removeAttr('disabled');
  112.         $("#economyclassseats").removeAttr('disabled');
  113.     break;
  114.  
  115.   }
  116.  });
  117.  });
  118. </script>
  119. <?php
  120.  
  121. echo "<tr><td><input id='editaircraft' type='submit' value='Edit Aircraft'></td></tr>";
  122.  
  123. }
  124. echo "</table>";
  125. ?>
  126.  
  127. </form>

Al archivo lo llamo así con AJAX.

Código Javascript:
Ver original
  1. function edit(str){
  2.         $("#loadingdialog").dialog('open');
  3.        
  4.         var conection;
  5.         if (window.XMLHttpRequest)
  6.             {
  7.             conection=new XMLHttpRequest();
  8.             }
  9.         else
  10.             {
  11.             conection=new ActiveXObject("Microsoft.XMLHTTP");
  12.             }
  13.         conection.onreadystatechange=function()
  14.             {
  15.             if (conection.readyState==4 && conection.status==200)
  16.             {
  17.             document.getElementById("editaircraftdialog").innerHTML=conection.responseText;
  18.                 $("#editaircraftdialog").dialog('open');
  19.                
  20.                 $("#loadingdialog").dialog('close');
  21.         }
  22.         }
  23.     conection.open("GET","./edit_aircraft.php?icao="+str,true);
  24.     conection.send();
  25.     }

Última edición por carlosuc99; 13/01/2013 a las 03:55

Etiquetas: ajax, funcion, html, input, javascript, js, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:29.