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 つの列を持つテーブルをロードし、そのうちの 1 つにボタンがあります。行をもう一度クリックすると、私は排除されました。

問題は次のとおりです。

$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 で作成された可変ポストを送信して、ボタンがあったテーブルの行だけでエラーが発生せずに再度料金が請求されますが、ボタンは何もしません。何が問題なのですか?

私は翻訳機を使用しています。理解できなかったらごめんなさい。

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>';
?>

これは、3 つの列を持つテーブルを作成するコードです。

<?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 に答える