Javascript ajaxed数据可以';jquery不能接受吗?
在加载文档时,我运行以下ajax脚本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);
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()