0

这是我原来的问题的第 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);
   }
 ?>
4

1 回答 1

0

您是否尝试过或 die() 是数据库在正确的位置,这会给您带来错误吗?

于 2013-03-13T21:26:37.683 回答