Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/10/2014, 19:12
yamsita
 
Fecha de Ingreso: diciembre-2011
Mensajes: 90
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Usar variable javascript en Jquery en el mismo documento

Hola Alexis88 muchas gracias por tu respuesta,

Ya lo adapte como me comentas y realmente me cuesta un poco de trabajo ya que no había empleado jQuery anteriormente, pero en verdad me interesa mucho saberlo.

Agregue lo siguiente, y efectivamente ya me toma el valor de la variable "campos":

Código Javascript:
Ver original
  1. var campos = 0;
  2. var cuenta = 0;
  3. var ancho = 0;
  4. var largo = 0;
  5. var medida = "";
  6. var calculo='Area';
  7.  
  8. //Función agregar campos de categoría y partes
  9. function agregarCampoS(elemento){
  10.  
  11. //Aquí lo agregue!  
  12. $(elemento).change(function () {
  13.             alert('CAMPOS: '+campos);  //Ya imprime el valor de campos
  14.             id_category = $(this).val();
  15.             $.post("subcategories.php", {
  16.                 id_category: id_category }, function(data){
  17.                 $("#parte"+campos).html(data);
  18.             });  
  19.    })
  20.    
  21.     posicion=document.getElementById('categoria'+campos).options.selectedIndex;
  22.     posicion2 = document.getElementById('categoria'+campos).options[posicion].text;
  23.     container = document.getElementById('contenido'+campos) ;
  24.  
  25.  
  26. if(posicion2=="Moldura" || (posicion2=='Tipo de reparacion')){
  27.     container.innerHTML=
  28. "<table  width='80%' >" +
  29. '<tr>'+
  30. '  <td colspan="3" class="Estilo2">N&uacute;mero de parte:'+
  31. '  <select name="parte'+campos+'" id="parte'+campos+'" onchange="JavaScript:fncSumarPerimetro(campos);"></select></td>'+
  32. '</tr>'+
  33. '  <tr>'+
  34. '    <td colspan="3" class="Estilo2"><strong>Medidas</strong></td>'+
  35. '  </tr>'+
  36. '  <tr class="Estilo2">'+
  37. '    <td width="44%">Perimetro: <input name="medida_u'+ campos +'" type="text" id="medida_u'+ campos +'" size="5" disabled/> </td>'+
  38. '    <td width="20%">cm</td>'+
  39. '    <td>&nbsp;</td>'+
  40. '  </tr>'+
  41. '  <tr class="Estilo2">'+
  42. '    <td colspan="3">Precio unitario: $ <input name="precio_u'+ campos +'" type="text" id="precio_u'+ campos +'" size="10" disabled/> pesos</td>'+
  43. '  </tr>'+
  44. '  <tr>'+
  45. '   <td colspan="3" class="Estilo2 Estilo5">'+
  46. "-------------------------------------------------------------------------" +
  47. '  </tr>'+
  48. "</table>";
  49.     var contenedor2= document.getElementById("contenedorcampos2"+campos);
  50.     contenedor2.appendChild(NvoCampo2);
  51.    
  52. }if((posicion2=='Maria Luisa') || (posicion2=='Vidrio') || (posicion2=='Bastidor'  || (posicion2=='Macosel'))){
  53. container = document.getElementById('contenido'+campos) ;  
  54. //NvoCampo2= document.createElement("div");
  55.    
  56.     container.innerHTML=
  57. "<table  width='80%' >" +
  58. '  <tr>'+
  59. '    <td colspan="3" class="Estilo2"><strong>Medidas de los margenes</strong></td>'+
  60. '  </tr>'+
  61. '  <tr class="Estilo2">'+
  62. '    <td>Superior:'+
  63. ' <input name="superior" type="text" id="superior'+ campos +'" size="3" /> cm'+
  64. ' </td>'+
  65. ' <td colspan="2">Izquierdo:'+
  66. '<input name="izquierdo" type="text" id="izquierdo'+ campos +'" size="3" />cm</td>'+
  67. '  </tr>'+
  68. '  <tr class="Estilo2">'+
  69. '    <td>Inferior:'+
  70. '&nbsp;&nbsp;'+
  71. ' <input name="inferior" type="text" id="inferior'+ campos +'" size="3" /> cm</td>'+
  72. ' <td colspan="2">Derecho:'+
  73. '<input name="derecho" type="text" id="derecho'+ campos +'" size="3" /> cm'+
  74. '  </tr>'+
  75. '<tr>'+
  76. '  <td colspan="3" class="Estilo2">N&uacute;mero de parte:'+
  77. '  <select name="parte'+campos+'" id="parte'+campos+'" onchange="JavaScript:fncSumarArea();"></select></td>'+
  78. '</tr>'+
  79. '  <tr class="Estilo2">'+
  80. '    <td width="54%">Área: <input name="medida_u'+ campos +'" type="text" id="medida_u'+ campos +'" size="5" disabled/> '+
  81. ' cm<sup>2</sup></td>'+
  82. '    <td width="10%"></td>'+
  83. '    <td width="36%">&nbsp;</td>'+
  84. '  </tr>'+
  85. '  <tr class="Estilo2">'+
  86. '    <td colspan="3">Precio unitario: $ <input name="precio_u'+ campos +'" type="text" id="precio_u'+ campos +'" size="10" disabled/> pesos</td>'+
  87. '  </tr>'+
  88. '  <tr>'+
  89. '   <td colspan="3" class="Estilo2 Estilo5">'+
  90. "-------------------------------------------------------------------------" +
  91. '  </tr>'+
  92. "</table>";
  93.     var contenedor2= document.getElementById("contenedorcampos2"+ campos);
  94.     contenedor2.appendChild(NvoCampo2);
  95. }
  96.    
  97. }
  98.        
  99. //Funcion agregar campos de categoria y partes
  100. function agregarCampo(){
  101. campos = campos + 1;
  102.  
  103. var NvoCampo= document.createElement("div");
  104.     NvoCampo.id= "divcampo_"+(campos);
  105.  
  106.     NvoCampo.innerHTML=
  107. "<table  width='80%' >" +
  108. '  <tr>'+
  109. '    <td height="30" colspan="2" bgcolor="#FAFAFA" class="Estilo2"><strong>'+campos+' Elemento de la orden de trabajo</strong></td>'+
  110. '   <td width="23%" height="30" align="center" bgcolor="#FAFAFA" class="Estilo2">'+
  111. "        <a href='JavaScript:quitarCampo(" + campos +");'> Quitar </a>" +
  112. '  </tr>'+
  113. '  <tr>'+
  114. '    <td colspan="3" class="Estilo2">Tipo de categor&iacute;a:'+
  115. '      <select name="categoria'+campos+'" id="categoria'+campos+'" onchange="agregarCampoS(this)">'+
  116. '        <option value="1">Maria Luisa</option>'+
  117. '        <option value="2">Moldura</option>'+
  118. '      </select></td>'+
  119. '  </tr>'+
  120. '<tr>'+//  bgcolor="#CC0066"
  121. '  <td colspan="3" class="Estilo2">'+
  122. "<div id='contenido"+campos+"'></div>" +
  123. '  </td>'+
  124. '</tr>'
  125. "</table>";
  126.  
  127.     var contenedor= document.getElementById("contenedorcampos");
  128.     contenedor.appendChild(NvoCampo);
  129.  
  130.  
  131. }
  132.  
  133. //Funcion para quitar elementos
  134. function quitarCampo(iddiv){
  135.   var eliminar = document.getElementById("divcampo_" + iddiv);
  136.   var contenedor= document.getElementById("contenedorcampos");
  137.   contenedor.removeChild(eliminar);
  138.  
  139. }

sin embargo, pasa algo raro ya que cuando cambio por primera vez el select ("categoria"+campos) no se muestra el Alert, después si cambio nuevamente el valor del select el "Alert" se muestra 2 veces y si vuelvo a cambiar el valor del select aparece una vez mas, osea 3, y así sucesivamente.

aparte no ejecuta el archivo "subcategories.php":

Código PHP:
<?php

$conexion 
= new mysqli('localhost''''''');

$id_category $_POST['id_category'];

$result $conexion->query("SELECT * FROM clientes WHERE tienda = ".$id_category);
if (
$result->num_rows 0) {
    while (
$row $result->fetch_assoc()) {                
        
$html .= '<option value="'.$row['id'].'">'.$row['nombre'].'</option>';
    }
}
echo 
$html;
?>
en verdad agradezco mucho tu ayuda!!
muchas gracias!