0

我有一个包含下拉框的表单,当值更改时,表单使用 jQuery 和 ajax 生成一个表。该表包含基于下拉框值的数据以及链接。

我的初始脚本是下拉框所在的位置以及添加表格的位置:

<?php require_once('/connections/db.php');
mysql_select_db($database_db, $db);
$query_weeks = "SELECT WeekNo, WeekName FROM tbl_weeks ORDER BY WeekNo ASC";
$weeks = mysql_query($query_weeks, $db) or die(mysql_error());
$row_weeks = mysql_fetch_assoc($weeks);
$totalRows_weeks = mysql_num_rows($weeks);
 ?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>


</head>

<body>


        <form name="form1" method="post" action="">
        <select id="weekselect" name="week">
          <?php
        do {  
        ?>
          <option value="<?php echo $row_weeks['WeekNo']?>"><?php echo $row_weeks['WeekName']?></option>
          <?php
        } while ($row_weeks = mysql_fetch_assoc($weeks));
          $rows = mysql_num_rows($weeks);
          if($rows > 0) {
              mysql_data_seek($weeks, 0);
              $row_weeks = mysql_fetch_assoc($weeks);
          }
        ?>
        </select>
        </form>


<div id="mydata"></div>


<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function (){



    // listen to change in monthselect
    $('#weekselect').change(function(){

        var week= $('#weekselect option:selected').val();

        //pass val to php
        $.post('test2.php',{week: week}, function(data) {
            //do something with the data
            $('div#mydata').html(data);
        });         
    });


});
</script>
</body>

</html>

The script produces the dropdown from the mysql db and creates a listener for it, when the select is changed the value of the select is passed to the test2.php using jquery. 返回的数据被添加到 div #mydata

产生表格的Test2如下

<?php


if (!isset($_SESSION)) {session_start();}
include('session.php');
require_once('Connections/dbc.php');
$open_week=$_SESSION['MM_OpenWeek'];
$week_selected=$_POST['week'];
$season=$_SESSION['MM_Season'];
?>


<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<?php
echo '<p>Week selected: '.$week_selected .'<p>';
echo '<p>Open Week: '.$open_week .'<p>';
if ($week_selected>=$open_week) {
    echo '<p>Week Open<p>';
} else {
    echo '<p>Week Closed<p>';
}

//create recordset of fixtures for the week selected
$sql="SELECT * FROM q_games_stats WHERE WeekNo =".$week_selected . " and Season=". $season ." and at='Home' ORDER BY WeekNo ASC";
$rec_games=mysqli_query($dbc,$sql);
//create table using the recordset
?>

<div id="data_table">

        <table class="table" align="center">
        <th class="th" width="80px">Match Date</th>
        <th class="th" width="150px">Home Team</th>
        <th class="th" width="40px">Score</th>
        <th class="th" width="150px">Away Team</th>
        <th class="th" width="150px">Link</th>

<?php
    while ($row=mysqli_fetch_array($rec_games)) 
    {
?>
        <tr class="tr">
        <td class="td"><?php echo $row['MatchDate']?></td>
        <td class="td"><?php echo $row['TeamName']?></td>
        <td class="td"><?php echo $row['Score']?></td>
        <td class="td"><?php echo $row['OppName']?></td>
        <td class="td"><a href="#" target="_top">Link</a></td>
        </tr>
<?php
    }
?>



</table>
</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function (){



    // listen to change in monthselect
    $('#data_table a').click(function(){
            alert("link clicked");

    });


});
</script>
</body>
</html>

这将生成包含链接的表。表中的链接有一个事件侦听器,当我单击它时会产生警报。

我想要做的不是在单击链接时生成警报,而是为了重现表,原因是当用户单击链接时,它将运行一个脚本,该脚本将更改表中的基础数据,因此该表将需要刷新。

我有办法做到这一点,还是有更好的方法来做我想做的事?

4

0 回答 0