0

好吧,这是代码

var $p = $("#tabla_inscripcion");
$p.load("Cursos_Existentes.php");

据说在一个名称和另一个按钮中收取 2 列的表。后:

$p.on('click','#tabla_cursos button.curso_ex',function(){
var curso = $(this).attr("id");
curso = curso.replace('_ver','');
if($(this).val() == 'no'){
$(this).val("si");
$("#"+curso).after('<tr class="cursos_'+curso+'"></tr>');
$('.cursos_'+curso).load("Horarios_Cursos.php?curso="+curso);
}
else{
$(this).val("no");
$(".cursos_"+curso).remove();
}
});

该按钮将在您单击的行下方添加一行,该行将加载一个包含 3 列的表格,其中一个将有一个按钮。如果你再次点击我被淘汰的那一行。

问题如下:

$p.on('click','#tabla_cursos #hor_cur tr td button.inscribir',function(){
$.ajax({
type: post,
url: "inscribir_curso.php",
data: "id_curso="+id, 
success: function(){
$("#tabla_inscripcion").load("Cursos_Existentes.php");
}
});

应该是点击按钮使用的是ajax做的发送一个变量post,没有错误会再次收费,只是没有按钮所在的表格行,但是按钮什么都不做,这是什么问题?

我正在使用翻译器,如果不理解,请见谅。

更新 2012/05/11

嗯,几乎所有的事情都在这里用 html 完成

<div class="tabla_inscripcion" id="tabla_inscripcion" align="center">
</div>

<?php
header("Content-Type: text/html;charset=utf-8");
include 'Conexion.php';

session_start();
$id_alumno = $_SESSION['id_login'];

$sql = "SELECT DISTINCT curso FROM cursos WHERE id_curso NOT IN (SELECT id_curso FROM inscripsion WHERE id_alumno=$id_alumno)";

$result = mysql_query($sql, $conexion);

echo '<table id="tabla_cursos">';
echo '<tr class="encabezado"><td>CURSOS</td></tr>';

if(mysql_num_rows($result) != 0){
    while($count = mysql_fetch_array($result)){
        echo '<tr id="'.str_replace(' ', '_', $count["curso"]).'">';
        echo '<td>'.$count["curso"].'</td>';
        echo '<td><button value="no" class="curso_ex" id="'.str_replace(' ', '_', $count["curso"]).'_ver">ver</button></td>';
        echo '</tr>';
    }
}
else{
    echo '<tr><td>no hay cursos disponibles</td></tr>';
}
echo '</table>';
?>

这是创建三列表的代码

<?php
header("Content-Type: text/html;charset=utf-8");
include 'Conexion.php';

$curso = str_replace('_', ' ', $_GET["curso"]);
$i=0;

$sql = "SELECT cursos.id_curso, curso, dias, horario, nombre 
    FROM cursos INNER JOIN instructor 
    ON cursos.id_instructor = instructor.id_instructor 
    AND curso='$curso'";

$result = mysql_query($sql, $conexion);


echo '<td>';
echo '<table id="horarios_cur">';
echo '<tr>
    <td id="dia_cur">Días</td>
    <td id="hor_cur">Horario</td>
    <td id="nom_prof">Profesor</td>
    <td id="but_insc"></td>
  </tr>';
if(mysql_num_rows($result) != 0){
   while ($count = mysql_fetch_array($result)){
  echo '<tr id="'.$curso.'_'.$i.'">';
  echo '<td id="hor_cur">'.$count["dias"].'</td>';
  echo '<td id="hor_cur">'.$count["horario"].'</td>';
  echo '<td id="nom_prof">'.$count["nombre"].'</td>';
  echo '<td id="but_insc"><button class="inscribir" id="'.$count['id_curso'].'">inscribir</button></td>';
  echo '</tr>';
  $i++;
}
}
else{
  echo '<tr><td id="hor_cur">'.$curso.'</td></tr>';
}
echo '</table>';
echo '</td>';
?>

而且我可能不解释,问题不在于代码失败,而是按钮没有反应,因为代码没有找到它

我认为它很长,但我会感谢回复

4

1 回答 1

0
$p.on('click','#tabla_cursos #hor_cur tr td button.inscribir', function(){
    $.ajax({
        type: "POST",
        url: "inscribir_curso.php",
        data: "id_curso="+id, 
        success: function(){
           $("#tabla_inscripcion").load("Cursos_Existentes.php");
        }
    });
});

不确定这是否只是您在 SO 上的帖子中的拼写错误,但您在“POST”上缺少引号,以及点击功能的结尾。您的选择器似乎过于冗长和复杂,但没有任何 HTML 就很难判断它是否正确。

于 2012-05-10T23:43:57.703 回答