2013-10-26 118 views
3

我正尝试使用动态生成的下拉列表来填充表格。我有一个从我的数据库生成的下拉列表(它抓住了特定播放器的所有年份)。我希望能够从下拉列表中选择一年,并让它更新我的表格。我已经生成了下拉菜单,但我无法从下拉菜单中获取选定的值。我在这里找到了我在这里找到的代码,但它似乎不起作用。下面是代码我迄今:如何从下拉列表中获取所选值

<input name="update" type="submit" value="Update" /> 
</form> 
<p></p> 
<form action="player_login.html"> 
<input type="submit" value="Logout" /> 
</form> 
</div> 

<div style="float: left"> 
    <p></p> 
<h1>Player Stats</h1> 
<table width="300" border="1" cellpadding="2" cellspacing="2"> 

<?php 
    // get "id" field from player table 
    $login_id = $_COOKIE["DB"]; 
    $id = "select id from player where login_id='$login_id';"; 
    $result1=mysql_query($id) or die('Select1 Query failed: ' . mysql_error()); 
    $row = mysql_fetch_array($result1); 

    // create a dropdown from stats table in db 
    echo "--Select Year--"; 
     $years_query = "select year from stats where player_id='$row[id]';"; 
     $years = mysql_query($years_query, $connect); 

     // fill array with db info 
     $var = array(); 
     while ($row2 = mysql_fetch_array($years)) 
     { 
      $var[] = $row2['year']; 
     } 

     // create dropdown 
    echo'<select name="years" id="years">'; 
    // For each value of the array assign variable name "city" 
    foreach($var as $year) 
    { 
      echo'<option value="'.$year.'">'.$year.'</option>'; 
    }  
    echo'</select>'; 

    // get selected option from dropdown 
    $selected_key = $_POST['years']; 
    $selected_val = $var[$_POST['years']]; 
    echo "<p></p>selected key: " . $selected_val; // this wont print anything??? 

    $search_query="select * from stats where player_id='$row[id]' and year=2013;"; 
    $result=mysql_query($search_query) or die('Select2 Query failed: ' . mysql_error()); 
    $num_cols = mysql_num_fields($result); 
    $line = mysql_fetch_row($result); 

    // create table with results 
    echo "<tr>"; 
    echo "<td>Year</td>"; 
     $j=1; 
     echo "<td><input name='$j' type='text' value='$line[$j]' size=20/></td>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td>Total Points</td>"; 
     $j=2; 
     echo "<td><input name='$j' type='text' value='$line[$j]' size=20/></td>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td>PPG</td>"; 
     $j=3; 
     echo "<td><input name='$j' type='text' value='$line[$j]' size=20/></td>"; 
    echo "</tr>"; 


?> 

</table> 
</div> 
+2

你需要使用JavaScript为......或者做一个形式... – Seazoux

回答

0

我看到你正在使用$ _ POST,为什么你不使用形式

//This is for get the form 
    echo '<script type="text/javascript"> 
     //<![CDATA[ 
     function get_form(element) 
     { 
      while(element) 
      { 
       element = element.parentNode 
       if(element.tagName.toLowerCase() == "form") 
       { 
        return element 
       } 
      } 
      return 0; //error: no form found in ancestors 
     } 
     //]]> 
    </script>'; 

//create a form 
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">'; 
// create dropdown; onchange will send the form when selected index changes... 
echo '<select name="years" id="years" onchange="get_form(this).submit(); return false;">'; 
    // For each value of the array assign variable name "city" 
    foreach($var as $year) 
    { 
      echo'<option value="'.$year.'">'.$year.'</option>'; 
    }  
    echo'</select></form>'; 

这就是全部! :d

我看到过你使用的是独特的形式更新所有的网页...它是不行的,因为你只有一个提交按钮和窗体没有更多的元素,请阅读:http://www.w3schools.com/tags/tag_form.asp

1

我看你使用$ _ POST和因为形式不提交,因而$ _ POST数据未设置。我用来捕获事件并发送AJAX Query提取结果并进行更新的最佳可用选项。

我已经下

$('#years').change(function() { 
    $.ajax({ 
      //request of AJAX 
    type : 'POST', 
    url : 'players_data.php', 
    dataType : 'json', 
    data: { 
     //Data with $_POST request 
     years : $('#years').val(); 

    }, 
    success: function(data){ 
    //Things to be done with returned data 
    } 
}}; 

的J查询的帮助下完成此作为创建一个新文件players_data.php有你写的代码从数据库提取数据为:

// get selected option from dropdown 
$selected_key = $_POST['years']; 
$selected_val = $var[$_POST['years']]; 
echo "<p></p>selected key: " . $selected_val; // this wont print anything??? 

$search_query="select * from stats where player_id='$row[id]' and year=2013;"; 
$result=mysql_query($search_query); 
$num_cols = mysql_num_fields($result); 
$line = mysql_fetch_row($result); 
$return['year']=$line; 
echo json_encode($return); 
0

从你的代码,我可以看到,ü想从选择框获得的价值,并立即填充表并显示results..use jQuery来获取所选对象的价值和JavaScript变量分配给一个PHP variabl即并插入数据库..

 <script type="text/javascript"> 
    $("#years").change(function() { 
    var value=document.getElementById("years").value; 
     alert(value); 
     </script> 

将变量分配给php并执行你的php查询。

   <?php 
      $data = "<script>document.write(value)</script>"; 
        //execute your query here.. 
     ?> 

也看看ajax..it不会这么好......

相关问题