0

我有一个看起来像这样的循环:

     <?
     $i=1;
     while ($u=mysql_fetch_array($result1)){
     ?> 
     <table>
          <tr>
            <td>Sport</td>
          </tr>
          <tr>
            <td><?php echo $u['sport_id'];?></td>
            <td>
            <a id="modal_window" href="#" rel="open">Make Question</a>
            </td>
          </tr>
     <?php
     $i++;
     } 
     ?>
     </table>

当有人点击“提出问题”时,会打开以下模式窗口:

            <div id="mascara"></div>
            <div id="ventana">
            <a class="ventanatitulo" href="#" rel="close">Close Window</a>
            <h2>Write your question:</h2><br/>
            <form>
            <input type="text" id="question"/>
            <br />
            </form>
            <a href="#" onClick="ajax_question();"/>Send question</a>
            </div>

我想要做的是,每次有人点击“提出问题”时,将模态窗口上写的问题捕获到一个变量中(这样做没问题),以及被点击的 sport_id(我不知道怎么做!!)

这是模态窗口的代码:

$(document).ready(function(e) {         
    $('a[rel="open"]').click(function(e) {
        e.preventDefault();

        var ancho = $(window).width();
        var alto = $(document).height();

        var mascara = $("#mascara");
        var ventana = $("#ventana");

        mascara.css({
            "width" : ancho,
            "height" :  alto
        });

        mascara.fadeIn("fast", function() {

            ventana.css({
                "top" : (alto / 3) - (ventana.height() / 2),
                "left" : (ancho / 2) - (ventana.width() / 2)
            });

            ventana.fadeIn("fast");
        });
    });

    $("a[rel='close']").click(function(e) {
        e.preventDefault();
        $("#ventana").fadeOut("fast", function() {
            $("#mascara").fadeOut("fast");
        });
    }); 
});

最后,这是我要捕获所有变量并将它们发送到 page1.php 的代码:

function ajax_question(){
var question=$('#question').val(); //WRITTED QUESTION IS CAPTURED WITHOUT PROBLEM!
var sport_id= //HOW DO I CAPTURE THE SPORT_ID THAT WAS CLICKED?
$.ajax({
    url:'page1.php',
    type:'POST',
    dataType:'text/html',
    data:'question='+question + '&sport_id='+sport_id,
    success: function(return){
                some code...
    }
});
}

我希望你明白我想要做什么。提前感谢任何可以帮助我的人!

4

1 回答 1

0

您只需要使用 jQuery 获取前一个兄弟姐妹,从您的<td>SPORT ID</td>子句中获取 Sport ID 值并将其作为参数提供给打开的窗口,该窗口将其存储在hidden input field.

这是一个示例代码:

$(document).ready(function(e) {         
    $('a[rel="open"]').click(function(e) {
        e.preventDefault();

        var tmp_sport_id = $(this).parent().prev().text();
        alert(tmp_sport_id);
    });
});

jsFiddle

重要的提示:

在循环中使用元素 ID 时<a id="modal_window" href="#" rel="open">Make Question</a>,应注意 ID 是唯一的。您不能两次使用同一个 ID。将其更改为class="modal_window".

于 2013-06-28T23:32:00.317 回答