I’m trying to make a simple MySQL Admin thing with php and jQuery. I’ve never used jQuery so my code is probably quite lol-worthy. The problem I’m having with the code is that when I click the button, nothing happens. I know the even fires because if I open the html file in firefox (not going to the url, using the file:/// thing) and click it, it shows my php code in the box I want the returned content to go into. The first thing i’m trying to do is connect to the database specified and return a list of the tables. Heres my code
index.html
<html> <head> <script type='text/javascript' src='jquery.js'></script> <script type='text/javascript'> var Server = 'None'; var Username = 'None'; var Password = 'None'; var Database = 'None'; $('#connect').click(function() { Server = $('#server').val(); Username = $('#username').val(); Password = $('#password').val(); Database = $('#database').val(); loadTables(); }); function loadTables() { $.get('display.php', { server: Server, username: Username, password: Password, database: Database, content: 'tables' }, function(data){ html = '<ul>'; $(data).find('table').each(function() { html = html + '<li>' + $(this).text() + '</li>'; }); html = html + '</ul>'; $('#content').html(html); } ); } </script> </head> <body> <center> <div class='connection'> <form name='connectForm'> Server: <input type='text' size='30' id='server' /> Username: <input type='text' id='username' /> Password: <input type='password' id='password' /> Database: <input type='text' id='database' /> <input type='button' id='connect' value='Connect' /> </form> </div> <div id='content'> </div> </center> </body> </html>
display.php
<? mysql_connect($_GET['server'], $_GET['username'], $_GET['password']) or die('Error: Could not connect to database!<br />' . mysql_error()); mysql_select_db($_GET['database']); $content = $_GET['content']; if ($content == 'tables') { $result = mysql_query('show tables'); $xml = '<?xml version=\'1.0\' encoding=\'UTF-8\'?>\n'; $xml .= '<tables>'; while ($row = mysql_fetch_assoc($result)) { $xml .= '<table>' . $row['Tables_in_blog'] . '</table>'; } $xml .= '</tables>'; header('Content-type: text/xml'); echo $xml; } ?>
EDIT: I have updated the code according to a mix of a few answers, but I’m still having the same problem.
Ok, firstly don’t do that and by ‘that’ I mean:
That being said, your main problem seems to be that
$(#content)should be$('#content'). Also putting an onclick on the button isn’t really the jQuery way. Try:Edit: minor corrections to the above and tested with this script: