Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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
Javascript ajaxed数据可以';jquery不能接受吗?_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript ajaxed数据可以';jquery不能接受吗?

Javascript ajaxed数据可以';jquery不能接受吗?,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,在加载文档时,我运行以下ajax脚本 function LoadData() { $.ajax({ type: "GET", url: "display.php", dataType: "html", success: function(text){ $("#responsecontainer").html(text);

在加载文档时,我运行以下ajax脚本

function LoadData() {             
  $.ajax({
    type: "GET",
    url: "display.php",             
    dataType: "html",                
    success: function(text){                    
        $("#responsecontainer").html(text); 
    }

});
}
下面是它从中提取数据的PHP脚本。 是的,我知道它被贬值了,很可能不会受到攻击。

<?php
include 'db.php';
$counter = 0;
echo '<table  class="table" id="tableShow">
<tr>
<td align=center><b>ID</b></td>
<td align=center><b>Name</b></td>
<td align=center><b>Quantity</b></td>
<td align=center><b>Price</b></td></td>
<td align=center><b>Description</b></td>
<td align=center><b>Edit Item</b></td>
';
$result = mysql_query("SELECT * from user ORDER BY `id` ASC");

while($data = mysql_fetch_row($result))
{   
    echo "<tr>";
    echo "<td align=center>$data[0]</td>";
    echo "<td align=center>$data[1]</td>";
    echo "<td align=center>$data[3]</td>";
    echo "<td align=center>$data[4]</td>";
    echo "<td align=center>$data[2]</td>";
    echo '<td align=center><a class="btn Edititem btn-info btn-small" id="'.++$counter.'">Test1</a></td>';
    echo "</tr>";
}
echo "</table>";

?>
似乎从PHP脚本中提取的html对jQuery是不可见的。例如,当您单击其中一个按钮时,它应该会启动我在页面中的模式,但是,这不会发生,而且我也不会收到任何控制台错误。但如果我只是将按钮插入
#responsecontainer
,如下所示:

<div id="responsecontainer">
  <a class="btn Edititem btn-info btn-small" id="'.++$counter.'">Test1</a>
</div>

测试1
jQuery可以找到它,模态启动了吗


这里怎么了?

我建议您使用
.on()
jQuery函数

考虑以下脚本更新:

$("#responsecontainer").on("click", ".Edititem", function() {
    $('#Edit').modal('show');
    $("#updateResults").click(function() {
        $.ajax({
            url: 'api.php',
            data: "id=" + $(this).find('a').attr('id'),
            dataType: 'json',
            success: function(data)
            {
                var id = data[0];
                var name = data[1];
                var desc = data[2];
                var quant = data[3];
                var price = data[4];
                $('#inner-title').html(name);
                $('#itemid').val(id);
                $('#Name').val(name);
                $('#quant').val(quant);
                $('#price').val(price);
                $('#desc').val(desc);
                $('#Edit').modal('hide');
                $('#success').alert();
            },
            error: function() {
                $("#failure").alert();
            }
        });
    });
});

我建议您使用
.on()
jQuery函数

考虑以下脚本更新:

$("#responsecontainer").on("click", ".Edititem", function() {
    $('#Edit').modal('show');
    $("#updateResults").click(function() {
        $.ajax({
            url: 'api.php',
            data: "id=" + $(this).find('a').attr('id'),
            dataType: 'json',
            success: function(data)
            {
                var id = data[0];
                var name = data[1];
                var desc = data[2];
                var quant = data[3];
                var price = data[4];
                $('#inner-title').html(name);
                $('#itemid').val(id);
                $('#Name').val(name);
                $('#quant').val(quant);
                $('#price').val(price);
                $('#desc').val(desc);
                $('#Edit').modal('hide');
                $('#success').alert();
            },
            error: function() {
                $("#failure").alert();
            }
        });
    });
});

我建议您使用
.on()
jQuery函数

考虑以下脚本更新:

$("#responsecontainer").on("click", ".Edititem", function() {
    $('#Edit').modal('show');
    $("#updateResults").click(function() {
        $.ajax({
            url: 'api.php',
            data: "id=" + $(this).find('a').attr('id'),
            dataType: 'json',
            success: function(data)
            {
                var id = data[0];
                var name = data[1];
                var desc = data[2];
                var quant = data[3];
                var price = data[4];
                $('#inner-title').html(name);
                $('#itemid').val(id);
                $('#Name').val(name);
                $('#quant').val(quant);
                $('#price').val(price);
                $('#desc').val(desc);
                $('#Edit').modal('hide');
                $('#success').alert();
            },
            error: function() {
                $("#failure").alert();
            }
        });
    });
});

我建议您使用
.on()
jQuery函数

考虑以下脚本更新:

$("#responsecontainer").on("click", ".Edititem", function() {
    $('#Edit').modal('show');
    $("#updateResults").click(function() {
        $.ajax({
            url: 'api.php',
            data: "id=" + $(this).find('a').attr('id'),
            dataType: 'json',
            success: function(data)
            {
                var id = data[0];
                var name = data[1];
                var desc = data[2];
                var quant = data[3];
                var price = data[4];
                $('#inner-title').html(name);
                $('#itemid').val(id);
                $('#Name').val(name);
                $('#quant').val(quant);
                $('#price').val(price);
                $('#desc').val(desc);
                $('#Edit').modal('hide');
                $('#success').alert();
            },
            error: function() {
                $("#failure").alert();
            }
        });
    });
});

这是因为加载文档时,元素尚未加载

您可以尝试以下方法。这不需要对Jquery进行后期绑定。在这里阅读更多


这是因为加载文档时,元素尚未加载

您可以尝试以下方法。这不需要对Jquery进行后期绑定。在这里阅读更多


这是因为加载文档时,元素尚未加载

您可以尝试以下方法。这不需要对Jquery进行后期绑定。在这里阅读更多


这是因为加载文档时,元素尚未加载

您可以尝试以下方法。这不需要对Jquery进行后期绑定。在这里阅读更多


“然后我有了这个脚本。”这个脚本很可能在它影响的元素存在之前执行。换言之@KevinB:script是在页面第一次加载时执行的。然后添加一些链接。Javascript没有将事件处理程序附加到这些链接,因为在脚本运行时它们不存在。你需要向你的
success
事件处理程序中添加一些代码,才能将事件处理程序添加到新链接中。@Kryten所以我错误地认为顺序应该是
从php获取数据->在页面上显示->运行javascript
,这样它才能工作?@AshleyBrown这不是你要做的。您所做的工作如下:
load basic html->注册单击函数并启动ajax请求->从ajax请求添加数据
。在您注册单击功能时,数据不存在。除此之外,ID不能以数字开头(或者只能是数字),因此您可能会遇到浏览器与此不一致的情况。您可以轻松地使用数据属性。@AshleyBrown您似乎误解了异步ajax请求和
$(document).ready()
<代码>$(document).ready()在DOM完成加载后执行,直到最后一行html和单击处理程序以及所有包含的脚本。然后ajax请求启动,需要更多的时间,并且在
$(document).ready()
-您的表被添加之后很长一段时间。“然后我就有了这个脚本。”该脚本可能在它影响的元素存在之前执行。换言之@KevinB:该脚本是在页面首次加载时执行的。然后添加一些链接。Javascript没有将事件处理程序附加到这些链接,因为在脚本运行时它们不存在。你需要向你的
success
事件处理程序中添加一些代码,才能将事件处理程序添加到新链接中。@Kryten所以我错误地认为顺序应该是
从php获取数据->在页面上显示->运行javascript
,这样它才能工作?@AshleyBrown这不是你要做的。您所做的工作如下:
load basic html->注册单击函数并启动ajax请求->从ajax请求添加数据
。在您注册单击功能时,数据不存在。除此之外,ID不能以数字开头(或者只能是数字),因此您可能会遇到浏览器与此不一致的情况。您可以轻松地使用数据属性。@AshleyBrown您似乎误解了异步ajax请求和
$(document).ready()
<代码>$(document).ready()在DOM完成加载后执行,直到最后一行html和单击处理程序以及所有包含的脚本。然后ajax请求启动,需要更多的时间,并且在
$(document).ready()
-您的表被添加之后很长一段时间。“然后我就有了这个脚本。”该脚本可能在它影响的元素存在之前执行。换言之@KevinB:该脚本是在页面首次加载时执行的。然后添加一些链接。Javascript没有将事件处理程序附加到这些链接,因为在脚本运行时它们不存在。你需要向你的
success
事件处理程序中添加一些代码,才能将事件处理程序添加到新链接中。@Kryten所以我错误地认为顺序应该是
从php获取数据->在页面上显示->运行javascript
,这样它才能工作?@AshleyBrown这不是你要做的。您所做的工作如下:
load basic html->注册单击函数并启动ajax请求->从ajax请求添加数据
。在您注册单击功能时,数据不存在。除此之外,ID不能以数字开头(或者只能是数字),因此您可能会遇到浏览器与此不一致的情况。您可以轻松地使用数据属性。@AshleyBrown您似乎误解了异步ajax请求和
$(document).ready()
<代码>$(document).ready()在DOM完成加载后执行,直到最后一行html和单击处理程序以及所有包含的脚本。然后ajax请求启动,需要更多的时间,并且在添加表之后很长一段时间内,
$(document).ready()