title: Returning and parsing json array via php and jquery post
body: <p>I'm trying to return a json array of names pulled from my database. I'm not sure what I'm missing here, but it never gets to the alert call. The returned data doesn't have to be json, I was just trying that approach first. It completes the INSERT call and I know that it is returning the correct data set. What's wrong with my code? </p>
  
  <p>Javascript</p>
  
  <pre><code>function showDB() {
      $.post('example.php', $('#infoForm').serialize(), function(data) {  
          var json = $.parseJSON(data);
          $.each(json, function(i, item) {
              alert(item);
          });
      }, "json");
  }
  </code></pre>
  
  <p>PHP</p>
  
  <pre><code>&lt;?php
      $host = "www.host.com";
      $user = "user";
      $pwd = "password";
      $db = "exampleDB";
  
      $conn = mysqli_connect($host, $user, $pwd)or die("Error connecting to database.");
      mysqli_select_db($conn, $db) or die("Couldn't select the database."); 
  
      $name = $_POST['name'];
      $color = $_POST['color'];   
      $nameArray = array();
  
      $stmt = mysqli_stmt_init($conn);
      $query = "INSERT INTO people VALUES (?, ?)";
      mysqli_stmt_prepare($stmt, $query) or die("Failed to prepare statement.");
      mysqli_stmt_bind_param($stmt, "ss", $name, $color);
      mysqli_stmt_execute($stmt);
      mysqli_stmt_close($stmt);
  
      $query = "SELECT name, COUNT(*) AS dupes FROM people GROUP BY name ORDER BY dupes DESC LIMIT 20";
      $result = mysqli_query($conn, $query);
  
      while ($row = $mysqli_fetch_array($result)) {
          array_push($nameArray, $row['name']);
      }
  
      echo json_encode($nameArray);
  
      mysqli_close($conn);
  
  ?&gt;
  </code></pre>