Cita:
Iniciado por pateketrueke
A ver, ¿te has puesto a revisar el código HTML que se genera en tu navegador?
Yo veo ningún problema con PHP, simplemente el include se carga donde tu le has indicado, y eso está bien.
Lo primero que dices es que ¿tiene que ver con jQuery?
Bien, si tu primera impresión es que dicho diálogo no se vea en tu pagina podrías ocultarlo con CSS.
¿Sabes si funciona el diálogo o no si pones HTML normal en lugar del include?
Algo muy importante que te está pasando es que repites todo dentro del ciclo, y debes saber que los ID de los elementos de HTML debe ser único, con lo cual rompes dicha regla.
Así también repites código Javascript sin sentido.
Primero deberías de hacer el ejercicio sin usar PHP, únicamente con HTML y Javascript, cuando funcione será mas sencillo entender lo que te sucede.
Que en breve, ya nada tiene que ver con PHP.
Creo que tiene que ver con PHP, porque si en lugar de el include pongo código php todo funciona bien. Y si el include lo pongo fuera del bucle también todo funciona bien (el include es necesario que esté dentro del bucle).
He modificado el archivo dejándolo así:
Código PHP:
Ver original<script>
$(function() {
$( ".editaircraftdialog" ).dialog({
autoOpen: false,
width: 425
});
$( ".editaircraft" ).click(function() {
$( ".editaircraftdialog" ).dialog( "open" );
return false;
});
});
</script>
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
if($i++%2==0){
$color="#FFFFFF";
}else{
$color="#CCCCCC";
}
?>
<tr bgcolor='<?php echo $color; ?>' onmouseover="this.style.background='#ABFB04';" onmouseout="this.style.background='<?php echo $color; ?>';">
<?php
echo "<td class=tablelist>";
echo $row["ICAO"] . '</td><td class=tablelist>';
echo $row["Name"] . '</td><td class=tablelist>';
echo $row["WeightEmpty"] . '</td><td class=tablelist>';
echo $row["WeightFull"] . '</td><td class=tablelist>';
echo $row["CargoFull"] . '</td><td class=tablelist>';
echo $row["Range"] . '</td><td class=tablelist>';
echo $row["Price"] . '</td><td class=tablelist>';
echo $row["FirstClassSeats"] . '</td><td class=tablelist>';
echo $row["BusinessClassSeats"] . '</td><td class=tablelist>';
echo $row["EconomyClassSeats"]. '</td><td class=tablelist>';
echo "<img class='editaircraft' src='./images/info.png'></td></tr>";
?>
<div class="editaircraftdialog" title="Edit Aircraft">
<?php include ('./new_aircraft.php'); ?>
</div>
<?php
}
echo "</table>";
$pagination->render();
?>
El error lo dá, pero así no repito código tontamente. Os repito si en vez del include pongo esto:
Funciona todo bien!!
Os dejo el archivo new_aircraft.php para saber si os sirve de algo.
Código PHP:
Ver original<script>
$(function() {
$("#insertaircraft")
.button()
.click(function(event) {
});
});
</script>
<form action="new_aircraft_process.php" method="post" enctype="application/x-www-form-urlencoded">
<table>
<tr><td class="forms">ICAO:</td><td><input maxlength="4" type="text" name="icao" size="30"/></td></tr>
<tr><td class="forms">Name:</td><td><input type="text" name="name" size="30"/></td></tr>
<tr><td class="forms">Weight Empty:</td><td><input type="text" name="weightempty" size="30"/></td></tr>
<tr><td class="forms">Weight Full:</td><td><input type="text" name="weightfull" size="30"/></td></tr>
<tr><td class="forms">Cargo Full:</td><td><input type="text" name="cargofull" size="30"/></td></tr>
<tr><td class="forms">Cruise Speed:</td><td><input type="text" name="cruisespeed" size="30"/></td></tr>
<tr><td class="forms">Range:</td><td><input type="text" name="range" size="30"/></td></tr>
<tr><td class="forms">Price:</td><td><input type="text" name="price" size="30"/></td></tr>
<tr><td class="forms">Number Classes:</td><td><select name="numberclasses" id="numberclasses">
<option value="0">Select Number of Classes</option>
<?php
echo '<option value="1">One Classes (Economy)</option>';
echo '<option value="2">Two Classes (Business & Economy)</option>';
echo '<option value="3">Three Classes (First, Business & Economy)</option>';
?>
</select></td></tr>
<tr><td class="forms">First Class Seats:</td><td><input disabled="disabled" type="text" id="firstclassseats" name="firstclassseats" size="30"/></td></tr>
<tr><td class="forms">Business Class Seats:</td><td><input disabled="disabled" type="text" id="businessclassseats" name="businessclassseats" size="30"/></td></tr>
<tr><td class="forms">Economy Class Seats:</td><td><input disabled="disabled" type="text" id="economyclassseats" name="economyclassseats" size="30"/></td></tr>
<script type="text/javascript">
$("#numberclasses").change(function() {
value = $(this).val();
str = parseInt(value);
switch(str)
{
case 0:
$(document).ready(function() {
$("#firstclassseats").attr("disabled","disabled");
$("#businessclassseats").attr("disabled","disabled");
$("#economyclassseats").attr("disabled","disabled");
});
break;
case 1:
$(document).ready(function() {
$("#economyclassseats").removeAttr('disabled');
$("#firstclassseats").attr("disabled","disabled");
$("#businessclassseats").attr("disabled","disabled");
});
break;
case 2:
$(document).ready(function() {
$("#businessclassseats").removeAttr('disabled');
$("#economyclassseats").removeAttr('disabled');
$("#firstclassseats").attr("disabled","disabled");
});
break;
case 3:
$(document).ready(function() {
$("#firstclassseats").removeAttr('disabled');
$("#businessclassseats").removeAttr('disabled');
$("#economyclassseats").removeAttr('disabled');
});
break;
}
});
</script>
<tr><td></td><td><input id="insertaircraft" type="submit" value="Insert Aircraft"/></td></tr>
</table>
</form>
PD: Acabo de comprobar que ahora se muestra como la esta imagen:

Si pulso en la imagen info.png (donde se debería mostrar el dialog), se despliegan 3(número de veces que se tiene que realizar el while porque hay 3 resultados en la db) dos con el contenido del new_aircraft.php pero el último en mostrarse(o el 1ero porque realmente está debajo de los otros dos) vacío.