Php 无法使用ajax填充表单并填充jquery插件
我试图用jquery的填充插件填充表单,但使用的是$.ajax 这个想法是根据链接中的id(比如link:get\u result\u edit.php?id=34)从我的数据库中检索数据,将其重新格式化为json,返回到我的页面,并用填充插件填充表单。但不知何故,我无法让它工作。任何想法: 代码如下:Php 无法使用ajax填充表单并填充jquery插件,php,jquery-plugins,jquery,Php,Jquery Plugins,Jquery,我试图用jquery的填充插件填充表单,但使用的是$.ajax 这个想法是根据链接中的id(比如link:get\u result\u edit.php?id=34)从我的数据库中检索数据,将其重新格式化为json,返回到我的页面,并用填充插件填充表单。但不知何故,我无法让它工作。任何想法: 代码如下: $('a').click(function(){ $('#updatediv').hide('slow'); $.ajax({ type: "GET&
$('a').click(function(){
$('#updatediv').hide('slow');
$.ajax({
type: "GET",
url: "get_result_edit.php",
success: function(data)
{
var $response=$(data);
$('#form1').populate($response);
}
});
$('#updatediv').fadeIn('slow');
return false;
而php文件说明如下:
<?php
$conn = new mysqli('localhost', 'XXXX', 'XXXXX', 'XXXXX');
@$query = 'Select * FROM news WHERE id ="'.$_GET['id'].'"';
$stmt = $conn->query($query) or die ($mysql->error());
if ($stmt)
{
$results = $stmt->fetch_object(); // get database data
$json = json_encode($results); // convert to JSON format
echo $json;
}
?>
现在看看它,你可以看到它应该打印出它的名字,但它没有打印出来。所以我猜从json中检索名称是不正确的
链接位于,用户名:Testing,通过:test123
有什么想法吗?首先,您必须为json的.ajax调用设置dataType选项: $.ajax({dataType:'json' 然后在success函数中,“data”参数已经是一个对象了,所以您只需使用它,不需要对它做任何事情(我不知道为什么要在代码中将它转换为jQuery对象) 编辑:
也考虑使用$.GeJSON而不是$.Ajax,这样您就不必费解数据类型
尝试IMPAGPPOPLE(另一个jQuery插件)。使用起来可能更容易:
您是否收到任何错误?PHP文件中返回的数据格式是否正确?请提供更多信息。首先,我认为sql查询有问题,因为它返回null,但如果我将其更改为获取数据库中的最后一个条目,则会得到一个结果{“主题”:“没有图片的新主题”,“日期”:“14\/11\/2009”,“图像”:“”,“content”:“contentgoes here”,“id”:“38”}使用firebug查看响应。唯一的问题是它没有填充表单。我已经调整了一些内容,我认为它没有正确读取json,因为它没有检测到字段名,因此我无法将它与表单进行比较,如果它存在,或者json中的键名必须与表单字段的名称匹配,这样才能工作k、 由于您没有收到任何错误,我相信这是您的问题。至于SQL,您必须在$.ajax调用中传递ID。如果您这样做,您会收到任何SQL错误吗?我如何在$.ajax调用中传递ID?表单字段中的ID是相同的。我唯一怀疑的是,在查看示例时,JSON中的键名是否存在错误re没有引用,而在我的文章中,它们是用双qoutes检索的,例如“主题”:“没有图片的新主题”。有什么解决办法吗?好的,我使用(this.attr(“href”)通过ajax现在作为url,我需要一个JSON的工作程序,你能给我们一个脚本的url,让我们自己看看它为什么不工作吗?用户名:测试通过:test123如果你愿意,我可以添加返回的php文件的输出,以显示它是有效的JSON
function populateFormElement(form, name, value)
{
// check that the named element exists in the form
var name = name; // handle non-php naming
var element = form[name];
if(element == undefined)
{
debug('No such element as ' + name);
return false;
}
// debug options
if(options.debug)
{
_populate.elements.push(element);
}
}
$( 'a' ).click ( function () {
$( '#updatediv' ).hide ( 'slow' );
$.ajax ( {
type: "GET",
url: "get_result_edit.php",
success: function ( data ) {
$( '#form1' ).populate ( data );
},
dataType: 'json'
} );
$( '#updatediv' ).fadeIn ( 'slow' );
return false;
}