1

何が問題なのかわかりません。問題は、HTML div(#receptor)で印刷するためにmysqlクエリから値を返そうとしているのに、値を出力していないことです。作成後に呼び出しを行おうとしています。 JSONソースを印刷するための外部関数へのリクエストを以下に定義します。これは私が今やろうとしていることです。

result.php

    <?php
    $library = "DbConnection.inc.php";
    if (is_readable($library)){
            require $library;}else{
            throw new RuntimeException("No se Pudo Incluir la ${library}");
    }


    $db = new DbConnection('localhost','root','','macrotelecom');

    switch (@$_REQUEST['action'])
    {
       case "consultar" :
        $db->connect();
        $data =  $db->getAllRows("SELECT * FROM Caracter");
        $db->disconnect();    
        echo json_encode($data);      
        exit;


    }


    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src='jquery-1.7.1.min.js' ></script>
    <script type="text/javascript">
    $(function(){ 
      $("#consultar").click(function(){
        $("#receptor").text("Consultando....");        
          $.post("result.php",{action:"consultar"}, respuesta,'json')
       });
    });



    function respuesta(arg){

       $("#receptor").html(arg.toSource());
    }
    </script>
    </head>
    <body>
        </br>
        <input type="button" id="consultar" value="consultar">
        <div id="receptor" style="border: solid 1px black; height: 100%; width: 100%;">

        </div>
    </body>
    </html>

しかし、$。post関数内で呼び出しを行うと、機能しますが、これは実行したくありません。

    <?php
    $library = "DbConnection.inc.php";
    if (is_readable($library)){
            require $library;}else{
            throw new RuntimeException("No se Pudo Incluir la ${library}");
    }


    $db = new DbConnection('localhost','root','','macrotelecom');

    switch (@$_REQUEST['action'])
    {
       case "consultar" :
        $db->connect();
        $data =  $db->getAllRows("SELECT * FROM Caracter");
        $db->disconnect();    
        echo json_encode($data);      
        exit;


    }


    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src='jquery-1.7.1.min.js' ></script>
    <script type="text/javascript">
    $(function(){ 
      $("#consultar").click(function(){
        $("#receptor").text("Consultando....");        
          $.post("result.php",{action:"consultar"}, respuesta,'json')
       });
    });



    function respuesta(arg){

       $("#receptor").html(arg.toSource());
    }
    </script>
    </head>
    <body>
        </br>
        <input type="button" id="consultar" value="consultar">
        <div id="receptor" style="border: solid 1px black; height: 100%; width: 100%;">

        </div>
    </body>
    </html>

何が問題なのか、これは私のナッツを真剣に駆り立てます、なぜ値が出力されないのか理解できません、データ型をjsonとして定義し、何も起こりません、respuesta(data)のような呼び出し「respuesta」でパラメーターを渡しましたが、どちらも希望しません誰かが私に手を差し伸べることができます、私は解決策を見ることができません。

ローカルテストを行う場合は、使用しているデータベース接続用のライブラリコードを配置します。

DbConnection.inc.php

    <?php
    class DbConnection {

      private $db_connection  = null;
      private $db_host     = '';
      private $db_user     = '';
      private $db_password = '';
      private $db_name     = '';
      private $errors      = array();



      public function __construct($db_host, $db_user, $db_password, $db_name)
      {
        $this->db_host     = $db_host;
        $this->db_user     = $db_user;
        $this->db_password = $db_password;
        $this->db_name     = $db_name;
      }

      public function connect()
      {
        if ( !$this->db_connection = @mysql_connect($this->db_host, $this->db_user, $this->db_password) ) {
          throw new RunTimeException("Couldn't connect to the database server");
        }
        if ( !@mysql_select_db($this->db_name, $this->db_connection) ) {
          throw new RunTimeException("Couldn't connect to the given database");
        }
        $this->executeQuery("SET CHARACTER SET 'utf8'");
      }

      public function disconnect(){
        if(mysql_close($this->db_connection)){
            return true;
        }
        return false;
      }

      public function getAllRows($sql)
      {
        if ( !$results = @mysql_query($sql, $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        $count = 0;
        $rows  = array();
        while ( $row = mysql_fetch_assoc($results) ) {
          $rows[] = $row;
          $count++;
        }
        return ($count)?$rows:false;
      }

      public function getOneColumn($sql)
      {
        if ( !$results = @mysql_query($sql, $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        $count = 0;
        $rows  = array();
        while ( $row = mysql_fetch_array($results) ) {
          $rows[] = $row[0];
          $count++;
        }
        return ($count)?$rows:false;
      }

      public function getArrayPair($sql)
      {
        if ( !$results = @mysql_query($sql, $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        $count = 0;
        $rows  = array();
        while ( $row = mysql_fetch_array($results) ) {
          $rows[$row[0]] = $row[1];
          $count++;
        }
        return ($count)?$rows:false;
      }

      public function getOneRow($sql)
      {
        if ( !$results = @mysql_query($sql, $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        if ( $row = mysql_fetch_assoc($results) ) {
          return $row;
        }
        return false;
      }

      public function getOneValue($sql)
      {
        if ( !$results = @mysql_query($sql, $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        if ( $row = mysql_fetch_array($results) ) {
          return $row[0];
        }
        return false;
      }

      public function executeQuery($sql)
      {
        if ( !@mysql_query($sql, $this->db_connection) ) {
          $this->errors[] = mysql_error($this->db_connection);
          return false;
        }
        return true;
      }

      public function getErrors()
      {
        return $this->errors;
      }

      public function getLastId()
      {
        return mysql_insert_id($this->db_connection);
      }

      public function countRows($table)
      {
        if (!is_string($table)) {
          throw new InvalidArgumentException("table_name isn't an string");
        }

        if ( !$results = @mysql_query("SELECT COUNT(*) as total FROM $table", $this->db_connection) ) {
          throw new RunTimeException("Couldn't execute query: ". mysql_error($this->db_connection) );
        }

        $count = mysql_fetch_array($results);
        $count = $count['total'];
        return ($count)?$count:0;
      }
    }

    ?>
4

1 に答える 1

1

これと一緒に使うこともできます

var id=$("#id").attr("value");
$.getJSON("pages.php",{id:id},dates);
function dates(datos)
{

$("#list").html("Name:"+datos[1].name+"<br>"+"Last Name:"+datos[1].lastname+"           
 <br>"+"Address:"+datos[1].address);
}

詳細については、こちらをご覧ください

http://docs.jquery.com/Getjson

これが役立つことを願っています

于 2012-08-23T14:32:10.437 に答える