如何将变量从PHP循环发送到Javascript

时间:2013-06-28 23:21:36

标签: javascript variables modal-window

我有一个如下所示的循环:

     <?
     $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>

当有人点击“Make Question”时,会打开以下模态窗口:

            <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>

我想做的是,每当有人点击“Make Question”时,将一个变量捕获到模态窗口上写的问题(没有问题),以及点击的sport_id(I不知道怎么做!!)

这是模态窗口的代码:

$(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...
    }
});
}

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

1 个答案:

答案 0 :(得分: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

重要提示:

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