使用php,mysql。当我从mysql数据库中获取数据到文本框进行更新时,只发送了一半的数据,例如,如果学生姓名是" john doe",在我查询数据库并设置值之后来自PHP的文本框,只有" John"出现在文本框中。
什么会导致这个问题,我无法检测到。
在数据库中,名称完全存储。
这是php脚本
编辑:
$srch = mysql_escape_string($_REQUEST['srch']);
$query = mysql_query("select * from X where htno='$srch' or studname like '%$srch%' ");
$row = mysql_fetch_array($query);
$data = "";
if($row){
$data .= '<table border="0" class="data_display">
<tr>
<th>HAll Ticket No:</th><th>Category</th><th>Centercode</th>
</tr>
<tr>
<td>'.$row['htno'].'<input type="hidden" id="htno" value="'.$row['htno'].'" /></td><td>'.$row['category'].'</td><td>'.$row['centercode'].'</td>
</tr>
<tr>
<th>Student Name</th><th>Center name</th><th>Student code</th><th>Score</th>
</tr>
<tr>
<td><input type="text" class="scoretxt" id="category" value='.$row['studname'].'/></td><td>'.$row['centername'].'</td><td>'.$row['studentcode'].'</td>
<td></tr>
</table>; }
感谢任何帮助。 TNX
答案 0 :(得分:2)
您错过了学生姓名周围的引号。
<input type="text" class="scoretxt" id="category" value='.$row['studname'].'/>
正在生成<input type="text" class="scoretxt" id="category" value=John Doe />
,只会显示为“John”。
应该是
<input type="text" class="scoretxt" id="category" value="'.$row['studname'].'"/>
生成<input type="text" class="scoretxt" id="category" value="John Doe" />
HTML非常宽容,因此很难发现这样的小事情。
答案 1 :(得分:0)
我担心此代码没有与您的问题相关的问题(尽管它有SQL注入和XSS漏洞)。你需要的是调试。首先检查问题是不是从MySQL返回(使用var_dump($ row)),如果一切正确,则假设问题是在之后,否则 - 之前。使用var_dump()并检查可能影响学生姓名的地方。我在这段代码中没有看到任何其他内容,所以我觉得如果$ row没问题,这篇文章就可以了。