开始jQuery帮助

我正在尝试使用php和jQuery创建一个简单的MySQL Admin。 我从来没有使用过jQuery,所以我的代码可能非常值得。 我对代码的问题是,当我点击按钮时,没有任何反应。 我知道偶然的火,因为如果我在firefox中打开html文件(不是使用文件:///的东西)并点击它,它会在框中显示我的PHP代码我希望返回的内容进入。 我要做的第一件事是连接到指定的数据库并返回表的列表。 inheritance我的代码

的index.html

    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 = "
    "; $(data).find("table").each(function() { html = html + "
  • " + $(this).text() + "
  • "; }); html = html + "
"; $('#content').html(html); } ); }
Server:   Username:   Password:   Database:  

Display.php的

 <? mysql_connect($_GET['server'], $_GET['username'], $_GET['password']) or die("Error: Could not connect to database!
" . mysql_error()); mysql_select_db($_GET['database']); $content = $_GET['content']; if ($content == "tables") { $result = mysql_query("show tables"); $xml = "\n"; $xml .= ""; while ($row = mysql_fetch_assoc($result)) { $xml .= "" . $row['Tables_in_blog'] . "
"; } $xml .= ""; header('Content-type: text/xml'); echo $xml; } ?>

编辑:我已经根据几个答案的混合更新了代码,但我仍然遇到同样的问题。

好吧,首先不要这样做,而“我”是指:

  • 不要在Javascript中放置数据库连接细节; 和
  • 在不进行消毒的情况下,请勿使用用户的输入。 你只是要求被黑客入侵。

话虽这么说,你的主要问题似乎是$(#content)应该是$("#content") 。 同样在按钮上点击一下并不是jQuery方式。 尝试:

  
Server: Username: Password: Database:

编辑:对上面的小修正并使用此脚本进行测试:

 \n"; ?>  $table\n"; } ?>  

我希望这有帮助。 我注意到你的代码有三件事:

1)display.php不关闭标签。

2)您使用$(#content)引用’content’div,这会引发Javascript错误。 确保将此选择器封装在引号中,例如$(’#content’)。

3)我不确定“$(”table“,xml).text()”。 相反,使用非常酷的find(’tag’)。each()语法来遍历XML响应。 这对我来说可以替代你的函数(数据)语句:

 function(data) { htmlTable = '
    '; $(data).find('table').each(function(){ htmlTable = htmlTable + '
  • ' + $(this).text() + '
  • '; }); htmlTable = htmlTable + '
' $('#content').html(htmlTable); });

这是一段代码:

    
Server: Username: Password: Database:

但在我看来,使用JSON而不是xml更好更容易,使用它更容易(get函数的最后几行):

  function(data){ $('#content').html('
    '); var contentUL = $('#content>ul'); $.each(data.tables, function(){ $('
  • ').html(this).appendTo(contentUL); }); }, 'json');

    您也可以使用jquery.form插件提交表单。 它还可以使用响应更新指定的元素,例如:

     $(document).ready(function() { $('#connectForm').ajaxForm({ target: '#content' }); }); 

    我不确定究竟是什么问题。 但是你不需要$ .get回调中的$(function(){}) – 将函数传递给$()实际上将事件处理程序绑定到“ready”事件,该事件仅在页面首次加载时被调用。 您只需提供一个将XML作为参数的函数(此处您将其作为“数据”,但将其称为“xml”?)并使用它。 我首先阅读http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype和http://docs.jquery.com/Events/ready#fn 。 此外,安装Firebug并检查错误控制台以查看JavaScript出现问题的位置 – 您可以转到“脚本”选项卡并设置断点以查看代码的执行情况,以了解出现问题的地方。

    你应该使用jQuery.forms.js插件。 http://malsup.com/jquery/form/

     $(#content) // This is definitely a problem. 

    选择器必须是字符串,因此$("#content")是正确的。