2013-03-09 69 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