Rayza Rayza - 1 month ago 5
PHP Question

JS $.post not loading PHP file

I copied the code from a YouTube tutorial, modified the database connection and SELECT items to connect to my existing DB, but I can't seem to get the JS to load the PHP file. In Chrome using the "inspect" tool, I can see that the JS file is loading, but when I click on GRAB on my HTML page, it doesn't do anything. Almost like the JS file is loading but not running.

Webserver folder structure:

ROOT FOLDER
test.html
-AJAX (folder)
name.php
-JS (folder)
global.js
-CONNECTIONS (folder)
dbase.php


HTML CODE

<!doctype html>
<html>
<head>
<title>AJAX Database</title>
</head>
<body>
Name: <input type="text" id="name">
<input type="submit" id=name-submit" value="Grab">
<div id="name-data"></div>

<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script src="js/global.js"></script>
</body>
</html>


Javascript File

$('input#name-submit').on('click', function() {
var name = $('input#name').val();
if ($trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
$('div#name-data').text(data);
});
}
});


PHP File


Answer

I'm not sure why my PHP code was edited and removed from here, but I've ended up re-writing the whole PHP page. I added or die(mysql_error()); to my SELECT statement and found that it needed me to specify my database in the FROM. I have multiple databases on my server and even though the DB is specified in the connection string it needed it again in the SQL Statement. The next problem I resolved was removing the mysql_num_rows as this was just not working like the demo did.

ORIGINAL PHP

    <?PHP
    if (isset($_POST['name']) === true && empty ($POST['name']) === false) {
           require '../db/connect.php';

    $query =mysql_query("
           SELECT 'names'.'location'
           FROM 'names'
           WHERE 'names'.'name' = '" . mysql_real-escape_string(trim($_POST['name'])) . "'
           ");

    echo (mysql_num_rows($query) !== 0) ? mysql_result($query, 0, 'location') : 'Name not found';
    }
    ?>

The original was far too complicated for what I wanted and also for me to problem solve it so I re-wrote it:

NEW PHP FILE

    <?PHP

    //I've intentionally left out the connection data..

    $sql_select = mysql_query("
          SELECT names.location
          FROM database_name.names
          WHERE names.name = '" . $_POST['name'] . "'
          ")
          or die(mysql_error());

    $sql_fetch = mysql_fetch_assoc($sql_select);

    echo $sql_fetch['name'];

    ?>

Thanks to those that assisted. Appreciated...

I am aware of the deprecated tags in the PHP file, but when I was copying from a demo so I wanted to get it working before updating it with new tags.