1

私はphpとjavaスクリプトを使ってmysqlからデータを表示しようとしています。ページにデータを表示することはできますが、スクリプトに送信することはできません。以下は私のファイルです

script1.js

$(document).ready( function() {
 done();
});

function done() {
      setTimeout( function() { 
      updates(); 
      done();
      }, 200);
}


function updates() {

  $.getJSON("cocktail.php", function(data){
      $("ul") .empty ();

      $each(data.result, function(){
          $("ul").append("<li>Poza: "+this['poza']+"</li> <li>Nume: "+this['nume']+"</li><li>Compozitie: "+this['compozitie']+"</li><br/>");

  });
   }); 
}

カクテル.php

<?php include ('includes/header_js.php');?>
<?php include_once ('includes/connection.php');?>

<div class="body_bg">
                        <h2>Arta Cocktail-urilor</h2>


                        <div class="clr"> </div>

<?php

$sql = "SELECT * FROM   cocktail";
$res = mysql_query($sql);
$result = array ();

while($row = mysql_fetch_array ($res) )
{

array_push($result, array('poza' => $row[1],
                            'nume' => $row[2],
                            'compozitie' =>$row[3]));
}
echo json_encode(array("result" => $result));

?>

 </div><!--end of body_bg-->

<?php include ('includes/footer.php'); ?>

接続.php

<?php 
$connection = mysql_connect('localhost', 'root'. '');
if(!$connection){
die('Nu s-a putut conecta la baza de date.' .mysql_error());    
}
$db_select = mysql_select_db('first_class', $connection);
if(!$db_select){
die('Eroare de conexiune'.mysql_error());   
}

?>

header.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>First Class Cocktail</title>
<link  rel="stylesheet" href="stylesheets/style.css"  type="text/css" />
</head>
<body>
<table></table>
<script type="text/javascript" src="javascripts/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="javascripts/script1.js"></script>
<div class="container">
<div class="header">




                </div><!--end of logo-->
        <div class="menu">
         <ul>
          <li><a href="index.php" class="active"><span>Acasa </span></a></li>
          <li><a href="galerie.php"><span>Galerie</span></a></li>
          <li><a href="cocktail.php"><span>Cocktail</span></a></li>
          <li><a href="about.php"><span> Despre Noi </span></a></li>
          <li><a href="contact.php"><span> Contact </span></a></li>
        </ul>

        </div><!--end of menu-->
        <div class="clr"></div><!--end of clr-->

どこで失敗しましたか??? これを読んで時間を無駄にしてくれてありがとう!ありがとうございました!

4

2 に答える 2

1

問題は、関数が JSON (および JSON のみ) を期待しているのにcocktail.php、HTML が含まれていることです。のような JSON の有効なヘッダー$.getJSONも返す必要があります。最終的には、次のようになります。Content-Typeapplication/jsoncocktail.php

<? 

include_once('includes/connection.php');

header('Content-Type: application/json');

$sql = 'SELECT poza, nume, compozitie FROM cocktail';
$res = mysql_query($sql);
$results = array();

while( $row = mysql_fetch_assoc($res) ) {

    $results[] = $row;

}

echo json_encode( array('results' => $results) );

?>

ちなみに、mysql_...関数を使用しているようです。これらの関数は、PHP の新しいバージョンでは非推奨になっています。新しい PDO 関数を使用してコードを将来的に保証することを強くお勧めします (詳細については、http: //php.net/manual/en/mysqlinfo.api.choosing. php )。

JavaScript コードにも問題があります。

$each(data.result, function(){

する必要があります

$.each(data.result, function ( index, value ) {

あなたも交換する必要があります

this['poza']

value.poza

最後に、JavaScript は次のようになります。

$(document).ready(function () {

    var updateList = function () {

        $.getJSON('cocktail.php', function( data ) {

            var list = $('ul');

            list.empty();

            $.each(data.results, function( index, result ) {

                list.append(
                    '<li>Poza: ' + result.poza + '</li>' +
                    '<li>Nume: ' + result.nume + '</li>' +
                    '<li>Compozitie: ' + result.compozitie + '</li>'
                );

            });

        });
    };

    window.setInterval(updateList, 200);

});
于 2013-10-15T17:40:02.987 に答える