Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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
Php 无法使用ajax填充表单并填充jquery插件_Php_Jquery Plugins_Jquery - Fatal编程技术网

Php 无法使用ajax填充表单并填充jquery插件

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&

我试图用jquery的填充插件填充表单,但使用的是$.ajax

这个想法是根据链接中的id(比如link:get\u result\u edit.php?id=34)从我的数据库中检索数据,将其重新格式化为json,返回到我的页面,并用填充插件填充表单。但不知何故,我无法让它工作。任何想法:

代码如下:

 $('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;
}