这是我原来的问题的第 2 部分:
用户会看到带有值的复选框。
我们希望看到基于复选框显示的结果。
如果用户选中一个框,则显示与该复选框关联的值。
类似地,如果用户选中多个复选框,则复选框的值以逗号分隔的方式显示。
复选框标记已成功实现。
代码工作正常,如下所示:
<form name ="checkForm" method="post" action="Search.php">
<input type="checkbox" name="ckform1"
onClick="checkAll(this.form,this)">Check/Uncheck All
<br>
<?php
// Connect to SQL Server database
include("../dbConnect.php");
// Construct query
$sql = "SELECT * FROM Search WHERE resultType IS NOT NULL";
// Execute query
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)){
echo '<input type="checkbox" name="ck[]"
value="'.$row["resultType"].'"><font class=heading>'.$row["resultType"].'</font><br>';
}
// Free statement and connection resources
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
<P><input type="submit" value="Go">
</form>
现在,我很难使用 Search.php。
这是应该根据选中的复选框或选中的复选框返回值的文件。
到目前为止,我没有收到错误。相反,我得到一个空白屏幕。
感谢你的协助
<?php
$ckList = format($_GET["ck"]);
// Connect to SQL Server database
include("../dbConnect.php");
if ( isset($_POST) && isset($_POST['Search']) )
{
$resultTypeWhereClause = '';
if ( ! empty($_POST['ckList']) ) // if the ckoptions var is set, we'll add the values to the query
{
$optionsToSearch = is_array($_POST['ckList']) ? $_POST['ckList'] : array($_POST['ckList']);
foreach ( $optionsToSearch as &$ckval )
{
// prevent sql injection
$ckval = mysql_real_escape_string($ckval);
}
// add all values to an 'IN' clause
$resultTypeWhereClause = "resultType IN ('" . implode("', '", $optionsToSearch) . "')";
}
if ( empty($resultTypeWhereClause) )
{
$resultTypeWhereClause = '1';
}
$found = array();
// build the final query
$sql = 'SELECT * FROM Search WHERE ' .$resultTypeWhereClause;
// Execute query
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
$results = array();
// Retrieve and display the results of the query
$lastresultType = "";
while($row = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)) {
array_push($results,$row);
}
echo json_encode($results);
// Free statement and connection resources
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
}
?>