2013-03-09 114 views
0

你好,第一次這樣做,基本上我很困惑如何重新填充數據庫中的文本框。從sql使用下拉列表填充文本字段jquery

我目前的問題是,基本上我的數據庫'USER'和'STATISTICS'中有兩個表。 目前工作的是我的代碼正在'USER'表中查找'User_ID'的值,並在下拉列表中填充值。

我想從沒有爲文本字段填入對應於從數據庫中查找的「USER_ID」 EG「goal_scored」這些價值觀,「幫助」,「clean_sheets」等

我非常困惑我已經查詢了各種不同的問題,但無法找到即時尋找。

<?php 
$link = mysql_connect("localhost","root",""); 
mysql_select_db("f_club",$link); 
$sql = "SELECT * FROM user "; 
$aResult = mysql_query($sql); 

?> 

<html> 
<body> 
<title>forms</title> 
<link rel="stylesheet" type="text/css" href="css/global.css" /> 
</head> 
<body> 
<div id="container"> 

<form action="update.php" method="post"> 
<h1>Enter User Details</h1> 
<h2> 
<p> <label for="User_ID"> User ID: </label> <select id="User_ID" id="User_ID" name="User_ID" > 
    <br> <option value="">Select</option></br> 
    <?php 
     $sid1 = $_REQUEST['User_ID']; 

     while($rows=mysql_fetch_array($aResult,MYSQL_ASSOC)) 
     { 

     $User_ID = $rows['User_ID']; 
     if($sid1 == $id) 
     { 
     $chkselect = 'selected'; 

     } 
     else 
     { 
     $chkselect =''; 
     } 
     ?> 
     <option value="<?php echo $id;?>"<?php echo $chkselect;?>> 
     <?php echo $User_ID;?></option> 
     <?php } 
     ?> 
     I had to put this in because everytime I have text field under the User_ID it goes next to it and cuts it off :S 


     <p><label for="null"> null: </label><input type="text" name="null" /></p> 
    <p><label for="goal_scored">Goal Scored: </label><input type="text" name="Goal_Scored" /></p> 
    <p><label for="assist">assist: </label><input type="text" name="assist" /></p> 
    <p><label for="clean_sheets">clean sheets: </label><input type="text" name="clean_sheets" /></p> 
    <p><label for="yellow_card">yellow card: </label><input type="text" name="yellow_card" /></p> 
    <p><label for="red_card">red card: </label><input type="text" name="red_card" /></p> 

    <p><input type="submit" name="submit" value="Update" /></p></h2> 
</form> 
</div> 
</body> 
</html> 

如果任何人都可以有助於理解才能到下一個階段,將不勝感激感謝X

+0

嗯......你需要告訴服務器哪個用戶被選中。要麼執行AJAX請求,要麼檢索數據直接將其放入文本字​​段,要麼發送表單到服務器,並讓PHP腳本檢索相應的值。 – 2013-03-09 15:49:25

回答

0

而不是在複雜的東西如AJAX花時間,我建議你去的頁面簡約路線與查詢,如user.php?id=1

的手藝user.php文件(像你這樣),如果id設置(if isset($_GET['id']))從數據庫中選擇用戶與select * from users where id = $id(當然我(在已消毒的投入,當然)假設你有一個id爲每個用戶)。

您仍然可以擁有<select>,但請記得用</select>關閉它。你可能最終是這樣的:

<form method="get"> 
    <label for="user">Select user:</label> 
    <select name="id" id="user"> 
    <option value="1">User 1</option> 
    ... 
    </select> 
    <submit name="submit" value="Select user" /> 
</form> 

這將發送?id=<id>到當前頁面,那麼你就可以在你的表格。如果您還想編輯該數據,請創建一個新表單,並在數據中填入代碼<input type="text" name="goal_scored" value="<?php echo $result['goal_scored']; ?>" />,然後確保method="post"isset($_POST['submit'])正在偵聽並更新您的數據庫。

一個例子:

<?php 
// init 
// Use mysqli_ instead, mysql_ is deprecated 
$result = mysqli_query($link, "SELECT id, name FROM users"); 
// Create our select 
while ($row = mysqli_fetch_array($link, $result, MYSQL_ASSOC)) {?> 
    <option value="<?php echo $result['id']; ?>"><?php echo $result['name'] ?></option> 
<?php} 

// More code ommitted 

if (isset($_GET['id'])) { 
    $id = sanitise($_GET['id']); // I recommend creating a function for this, 
           // but if only you are going to use it, maybe 
           // don't bother. 
    $result = mysqli_query($link, "SELECT * FROM users WHERE id = $id"); 
    // now create our form. 

    if (isset($_POST['submit'])) { 
    // data to be updated 
    $data = sanitise($_POST['data']); 
    // ... 

    mysqli_query($link, "UPDATE users SET data = $data, ... WHERE id = $id"); 
    // To avoid the 'refresh to send data thing', you might want to do a 
    // location header trick 
    header('Location: user.php?id='.$id); 
    } 
} 

記住,這只是我談論這個想法的一個例子,大量的代碼已經被省略。我通常不喜歡在<?php ?>標籤之外編寫實際的HTML標籤,但它可以工作,我猜。特別是對於小事。

+0

感謝您的幫助,我會讓您知道我如何實施它。 – user2151740 2013-03-09 16:18:58

+0

它不是什麼即時通訊尋找...我實際上提煉了一些代碼,而不是看着我把它更改爲統計表的用戶表。我仍然想知道如何去做這件事。我已經看過AJAX onchange,但仍然無法弄清楚。任何幫助? – user2151740 2013-03-09 17:23:06