注意:未定义的索引:ID

时间:2015-12-16 17:51:36

标签: php sql

    $ID = $_GET['ID'];
      $results = $mysqli->query("SELECT * FROM PresidentialCandidate WHERE ID='$ID'");   
      if( $results->num_rows > 0 )
      {
      $row = mysqli_fetch_array($results,MYSQLI_ASSOC);

       //Instead of just echoing out the ID, you need to build the result/data that you want in the div right here. The success function of the AJAX call will append whatever you echo out here
echo $row['ID'];
      }

不知道出了什么问题。这是基于我原始问题上发布的解决方案的问题:Using a href onclick to update div without reloading page?如何定义ID变量?

2 个答案:

答案 0 :(得分:1)

您的代码可能导致2个不同的问题。但是你已经相同地命名了你的变量。

1。)检查您的GET变量是否已设置,否则使用默认值初始化它们。但在你的情况下,最好检查它之前是否设置,如果未设置则不执行查询。

$ID = (int)$_GET['ID'];
if(isset($_GET['ID']) {
  $results = $mysqli->query("SELECT * FROM PresidentialCandidate WHERE ID='$ID'");   
  if( $results->num_rows > 0 ) {
      $row = mysqli_fetch_array($results,MYSQLI_ASSOC);

      echo $row['ID'];
  }
}

2。)如果您的数据库中没有名为ID的确切字段,那么您将遇到下一个错误。你应该先检查一下。

最后一件事是你以错误和非常不安全的方式使用mysqli。您可以将GET变量直接传递给查询,而无需使用预准备语句或检查它是否为int。

https://secure.php.net/manual/en/mysqli.prepare.php

你应该看看这一点。

答案 1 :(得分:1)

您需要在data-attrb中设置<a></a>(不需要使用相同名称)等属性,并在<script></script>中使用此属性。您可以将data-attrb中的值传递给var ID=$(this).attr('data-attrb'); <script></script>中的<a></a>。为load()声明一个类名,使用此类名称来调用<a href="#" class="asd" data-attrb='1277'> Two </a> <a href="#" class="asd" data-attrb='1235'> Three </a> <div id='myStyle'></div> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script> $(document).ready(function(){ $(".asd").click(function(){ var ID=$(this).attr('data-attrb'); $("#myStyle").load("templatecode.php?id="+ID); }); }); </script> 函数。我已经检查了这段代码,它正在运作。

<script></script>

templatecode.php (此页面名称也在<?php $ID = $_GET['id']; $results = $mysqli->query("SELECT * FROM PresidentialCandidate WHERE ID='$ID'"); if( $results->num_rows > 0 ) { $row = mysqli_fetch_array($results,MYSQLI_ASSOC); //Instead of just echoing out the ID, you need to build the result/data that you want in the div right here. The success function of the AJAX call will append whatever you echo out here echo $row['ID']; } ?> 标记中使用,因此如果您在此处更改网页名称,请在此处更改网页名称。)

mongod.exe