2

データベースにデータのエントリがあるかどうかを確認し、各エントリのページに通知を表示するajaxスクリプトが必要です。そのページを表示しているすべてのユーザーに通知を表示したいです。

次のことを試しましたが、必要な出力が得られません。

main.html

<html>
<head>
  <script type='text/javascript' src='ajx.js'></script>
</head>
</html>

pop.php

<?php
try{
    $con=mysql_connect("localhost:3306", "root", "") or die(mysql_error()) ;  
    $q = mysql_query("SELECT `user`.`name`,`user`.`page` FROM `people`.`user` ORDER BY `user`.`index` DESC",$con);

    if(!$q)
    {
    throw new Exception('Uncaught Exception occurred');
     }
}
catch(Exception $e)
{
Echo "";
}

$results = mysql_fetch_assoc($q);


echo json_encode($results);
?>

ajx.js

$.ajax({
url: "pop.php",
dataType: "json",
success: function(json){
    var dataArray = JSON.decode(json);
    dataArray.each(function(entry){
        alert(entry.name);
    }
}
});

main.html を読み込んだときに結果が得られません。結果を出力するには、何らかのステートメントが必要だと思います。

4

2 に答える 2

1

そのスクリプトのどの特定の側面を書く際に明確にしたいですか? どこで問題が発生している可能性があるかについて具体的な質問はありますか?

次のようなものを使用できます。

PHP ファイル: (get_notifications.php)

$q = /*your query to database*/
$query = mysql_query($q, $dbConnect);
$results = mysql_fetch_assoc($query);
echo json_encode($results);

Javascript ファイル:

$.ajax({
    url: "get_notifications.php",
    dataType: "json",
    success: function(json){
        var dataArray = JSON.decode(json);
        dataArray.each(function(entry){
            alert(entry.valueName);
        }
    }
});

JavaScript ファイルの "valueName" は、出力するデータ キーを参照します。たとえば、「人から名前を選択」し、その名前を出力したい場合、それは entry.name になります。アラートを追加などに置き換えて、データを div またはページに配置することもできます。

これらの部分についてさらに説明が必要な場合はお知らせください。これでかなり良いスタートが切れるはずです。それが役に立てば幸い。

明確化: ページがロードするファイルには、レイアウトと HTML、および js を含めるためのスクリプト タグのみを含める必要があります。

次に、ajax 呼び出し用の php は、ロードされるページには含まれず、Ajax によって呼び出される別のファイルにある必要があります。それが理にかなっていることを願っています。

于 2012-09-21T19:05:53.900 に答える
1

私はあなたのコードを見て、いくつかの変更を加えました。これは、私が使用したテストデータベースを備えたシステムで動作する、私が使用した正確なコードです: (システム環境に合わせて微調整する必要があります)

main.html:

<html>
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type='text/javascript' src='ajx.js'></script>
</head>
<body>
    Your body content in here...
</body>
</html>

pop.php:

<?php
include __DIR__.'/include/Configurations.php';
include __DIR__.'/include/DatabaseConnect.php';

global $databaseConnection;

try{
    $q = mysql_query("SELECT name, page FROM users", $databaseConnection);

    if(!$q)
    {
    throw new Exception('Uncaught Exception occurred');
    }
}
catch(Exception $e)
{
Echo "";
}

$results = Array();
$i = 0;

while ($row = mysql_fetch_assoc($q))
{
    $results[$i] = $row;
    $i++;
}

echo json_encode($results);
?>

ajx.js:

$(document).ready(function(){
    $.ajax({
        url: "pop.php",
        dataType: "json",
        success: function(json){
            var i;
            for(i=0; i<json.length; i++)
            {
                alert(json[i].name);
            }
        }
    });
});

それを実際のプロジェクトに統合すると、ページ上でコンテンツを適切に取得するために、alert() 関数を任意のロジックと出力メソッドに置き換えることができます。これがどのように行われるか、または他にお手伝いできることがあればお知らせください。

于 2012-09-25T14:35:51.990 に答える