Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery不能处理通过PHP回传的元素_Php_Jquery_Mysql_Html Table - Fatal编程技术网

jQuery不能处理通过PHP回传的元素

jQuery不能处理通过PHP回传的元素,php,jquery,mysql,html-table,Php,Jquery,Mysql,Html Table,我有一个PHP代码,它从mysql数据库生成一个html表,然后我尝试使用一个jQuery插件使表可排序。我已经有过很多次这个问题,似乎在任何地方都找不到解决方案。。。为什么jQuery没有,或者它是Javascript周期?处理PHP输出?这不是有办法吗 代码如下: <html><head> <title>MySQL Table Viewer</title> <script src="http://code.jquery.com/jquer

我有一个PHP代码,它从mysql数据库生成一个html表,然后我尝试使用一个jQuery插件使表可排序。我已经有过很多次这个问题,似乎在任何地方都找不到解决方案。。。为什么jQuery没有,或者它是Javascript周期?处理PHP输出?这不是有办法吗

代码如下:

<html><head>
<title>MySQL Table Viewer</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://tablesorter.com/jquery.tablesorter.min.js"></script>
<script src="http://tablesorter.com/addons/pager/jquery.tablesorter.pager.js"></script>
<script>
$(document).ready(function() 
{ 
    $("#mytable").tablesorter(); 
} 
); 
</script>
</head><body>
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = 'lptm42b';

$database = 'sphinx';
$table = 'spheres';

if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");

if (!mysql_select_db($database))
die("Can't select database");

// sending query
$result = mysql_query("SELECT * FROM {$table}");
if (!$result) {
    die("Query to show fields from table failed");
}

$fields_num = mysql_num_fields($result);

echo "<h1>Table: {$table}</h1>";
echo "<table id=\"mytable\" border='1'><tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
    echo "<td>{$field->name}</td>";
}
echo "</tr>\n";
// printing table rows
while($row = mysql_fetch_row($result))
{
    echo "<tr>";

    // $row is array... foreach( .. ) puts every element
    // of $row to $cell variable
    foreach($row as $cell)
        echo "<td>$cell</td>";

    echo "</tr>\n";
}
mysql_free_result($result);
?></table>
</body>
</html>
输出为:

<html><head>

<script src="../js/jquery_plugin.tablesorter.min.js"></script>

<script src="../js/jquery-1.6.min.js"></script>

<script src="../js/jquery_plugin.tablesorter.pager.js"></script>

<title>MySQL Table Viewer</title></head><body>

<h1>Table: lobby</h1><table id="mytable" border='1'><thead><tr><td>tableid</td>    <td>name</td><td>datecreated</td><td>active</td></tr></thead> 
<tbody><tr><td>12341231241</td><td>Oyunum1</td><td>2011-05-09 14:26:51</td><td>0</td>    </tr> 
<tr><td>6677768</td><td>m2</td><td>2011-05-05 14:26:39</td><td>1</td></tr> 
<tr><td>ddf1</td><td>m3</td><td>2011-05-09 14:27:19</td><td>0</td></tr> 
<tr><td>7856844444</td><td>m4</td><td>2011-05-09 14:27:31</td><td>0</td></tr> 
<tr><td>xxxxde4rfd</td><td>m5</td><td>2011-05-09 14:27:43</td><td>0</td></tr> 
</tbody></table>

</body></html>

<script>

$(document).ready(function() 

{ 

    $("#mytable").tablesorter(); 

} 

); 

</script>
更新:由于某些原因,chrome view source中的/script>标记结尾处的语法着色丢失了,您没有提供mytable元素

您需要使用与实际存在的元素匹配的选择器

编辑:您的PHP有错误的嵌套引号,因此ID实际上不在字符串中。 查看页面源。

您没有提供mytable元素

您需要使用与实际存在的元素匹配的选择器

编辑:您的PHP有错误的嵌套引号,因此ID实际上不在字符串中。
查看页面源。

您应该使用mytable为表添加ID


在使用JQuery时,还可以将ad、tbody放在表标记中,以获得更好的输出。

您应该使用mytable为表添加ID


在使用JQuery时,还可以在表中放置ad和tbody标记,以获得更好的输出。

插件需要在表中放置ad和tbody标记才能工作

插件需要在表中放置ad和tbody标记才能工作

Javascript是一种客户端技术,意味着它可以使用服务器通过php直接生成的元素,其中包括一些体操

试着通读PHP和ajax调用中的函数


另外,您可能会对.delegate jQuery方法感兴趣。

Javascript是一种客户端技术,这意味着要让它与服务器通过php直接生成的元素一起工作,其中涉及到一些技巧

试着通读PHP和ajax调用中的函数


另外,您可能对.delegate jQuery方法感兴趣。

很晚才来到这个聚会,但是您需要知道,如果document.ready在最初加载dom之后生成了动态生成的html,那么它不会获取动态生成的html。有一些jQuery插件可以解决这个问题,liveQuery就是其中之一,但是Document.Ready事件会在每次页面加载时触发一次,如果生成html的PHP在此之后被触发,那么您调用的tablesorter方法就没有什么可排序的了。

很晚才来到这个聚会,但是您需要知道,如果动态生成的html是在最初加载dom之后生成的,document.ready将不会获取该html。有一些jQuery插件可以解决这个问题,liveQuery就是其中之一,但是Document.Ready事件在每次页面加载时都会触发一次,如果生成html的PHP在此之后触发,那么您调用的tablesorter方法就没有什么可排序的了。

它会给出错误吗?您使用的浏览器是什么?不要回显HTML。和:回声;应该抛出语法错误。您可以在代码突出显示处看到,存在报价问题。您忘记关闭报价单。这仍然是错误的。您正在做的是回显字符串。您的脚本标记不在标记的旁边。把它放在脑袋里,它会出错吗?您使用的浏览器是什么?不要回显HTML。和:回声;应该抛出语法错误。您可以在代码突出显示处看到,存在报价问题。您忘记关闭报价单。这仍然是错误的。您正在做的是回显字符串。您的脚本标记不在标记的旁边。很抱歉,这是一个输入错误,我复制粘贴了不同的内容。很抱歉,这是一个输入错误,我复制粘贴了不同的内容。因此,在使用JQuery时,也会将ad、tbody放在表标记中,以获得更好的输出。为什么?在使用JQuery时,还可以将ad、tbody放在表标记中以获得更好的输出。为什么?添加了那些标签,还是不起作用。。为什么会这样?我添加了output@Logan:标题应具有标题标签的TH标签,而不是TD标签。尝试替换这些,它可能会起作用。添加了那些标签,仍然不起作用。。为什么会这样?我添加了output@Logan:标题应具有标题标签的TH标签,而不是TD标签。试着换掉这些,可能会有用。不是这样。Javascript在DOM元素上工作。不管DOM元素是否由PHP、Response.Write、ASP或其他什么响应。如果存在html元素,则可以使用javascript与该html交互。我认为这里的问题是当html被写到客户端时。不是这样。Javascript在DOM元素上工作。不管DOM元素是否由PHP、Response.Write、ASP或其他什么响应。如果存在html元素,则可以使用javascript与该html交互。我认为这里的问题是当html被写到客户端时。