2013-10-26 174 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不會這麼好......

相關問題