0

php を使用して mysql db からデータを取得し、それらを javascript 配列に割り当てたいと考えています。データベースに 200 のレコードがあり、ランダムに 10 のレコードを取得します。

$myQuery = mysql_query("select * from tblx where xyz=1 order by rand() limit 10");

*私がしたいのは、これらのレコードを配列に割り当てて、フェード効果などで1つずつページに表示することです。ユーザーはそれらのいずれかをクリックして、新しいデータをロードするためにコールバック関数を実行する必要があるよりも、これの値を db に投稿します。

# # # # # # # # # # # # # # # # # # # # # # # # # # # #

                              EDIT 2013.06.11

# # # # # # # # # # # # # # # # # # # # # # # # # # # #

私は完全に混乱しているので、論理を明確にしてください。

ここで、db からデータを取得します。

index.php


$sorular_hepsi = mysql_query("select * from tblsorular where hafta=1 order by rand() limit 2");
    $soru_ust = mysql_fetch_assoc($sorular_hepsi);
        $soru_id = $soru_ust_rs["id"];
        $soru_grup_id = $soru_ust["sId"];

$soru1 = $soru_ust["soru"];

$sorular = mysql_query("select * from tblsorular where sId=$soru_grup_id");
$totalKayit = mysql_num_rows($sorular_rs);

    while ( $sorular_rs=mysql_fetch_assoc($sorular)) {
        $sorular2[] = $sorular_rs["soru"];
        $sorular2Id[] = $sorular_rs["id"];
    }

$userId = 1234;

そして、ここにリストされているオブジェクトがありますindex.php

<div id="sorugonder" class="soruStyle">
        <a href="#" class="sorugonder" id="<?=$sorular2Id[0]?>"><?=$sorular2[0]?></a>
    </div>

    <div id="soru_sag" class="soruStyle">
        <a href="#" class="sorugonder2" id="<?=$sorular2Id[1]?>"><?=$sorular2[1]?></a>
    </div>

そして、これが私のデータを送信するための私のajax関数ですislem.php

$(function() {
    $(".sorugonder").click(function() {
    // $('#load').fadeIn();
    var commentContainer = $(this).parent();

    var id = $(this).attr("id");
    var string = 'id='+ id ;

    $.ajax({
       type: "POST",
       url: "islem.php?islem=soruKayit",
       data: string,
       cache: false,

       success: function(data){

       commentContainer.slideUp('slow', function() {$(this).remove();});
             $('#sorugonder').fadeOut(1000);
             $('#soru_sag').fadeOut(2000);

             console.log(string);
             // alert(id);
            }
        });

        return false;

    });
});

この関数は、コンソール ログを次のように出力します。id=xx

そして、これがajaxデータを取得するためのislem.phpページです

if(isset($_POST["islem"]) && $_POST["islem"]=="soruKayit"){

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

    $id= $_POST['string'];
    $cevapTarihi = date("d-m-Y H:i:s");

    $cevapId = json_encode($id);
    $userId = 1234;

     $kayit = @mysql_query("INSERT INTO tblk_skor VALUES(NULL, $userId,$cevapId,$cevapTarihi)");

        if(!$kayit){
                echo "Error:".mysql_error();
        }

    die();

}

私は4つの異なるpng画像を持っており、それらを背景として使用しています。例えば ​​:

$1 = '<img src="../img/1.png" />';
$2 = '<img src="../img/2.png" />';
$3 = '<img src="../img/3.png" />';
$4 = '<img src="../img/4.png" />';

各ポストプロセスでリストされたデータの背景を変更しました。しかし、それらをどこにどのように配置する必要があるのか​​ わかりませんでしたか?

$.ajax 関数がデータを islem.php に送信しない、またはデータを取得できません。

簡単に:

  1. 自分のレコードをデータベースに追加したい (id のみ)
  2. このプロセスを 10 の異なるレコードで 10 回繰り返すには、コールバック関数を実行する必要があります。
  3. この 10rec が終了したら、結果を計算して別のページにリダイレクトします。
  4. 投稿ステップごとに背景を変更します。
  5. 秒読み!ユーザーが 10 秒でクリックできるように、カウントダウンを div に配置する必要があります。それ以外の場合は、別のエラー関数を実行して、これをすべてやり直す必要があります。関数で実演する適切なカウントダウン スクリプトが見つかりませんでした。

これだけ。

助言がありますか?

4

6 に答える 6

0

ページに ajax 呼び出しを行ってデータを取得し (json_encode() できます)、それをいじって、fadeIn() 効果などを与えることができます。

于 2013-11-05T09:54:10.120 に答える
0

MySql 行を JSON として返すことができます。例:

PHP:

<?php
$arr[0]['name']   = 'test0';
$arr[0]['colour'] = 'red';
$arr[1]['name']   = 'test1';
$arr[1]['colour'] = 'blue';
$arr[2]['name']   = 'test2';
$arr[2]['colour'] = 'orange';
?>
<script type="text/javascript">
<?php 
    echo someThings = json_encode($arr); 
?>
</script>

次に、JavaScriptでさらにそれらの値に対して何でもできます

Javascript:

counter = 0;
setInterval(function () {
    if (counter < someThings.length - 1) {
        //do something
    } else {
        counter = 0;
        //do something with the starting element again like 
        alert('The name is ' + someThing[counter].name + ' and the colour is ' + someThing[counter].colour);
    }
    counter++;
}, 5000);
于 2013-11-05T10:02:19.023 に答える
0

最初に、クエリを使用して php で変数を作成する必要があります。以下のコードは単なるデモです。配列全体でループし、while クエリ全体でループするために必要な配列を作成しています。

<?php
$a="{ ";

for($y=2012;$y<=date("Y")+1;$y++)
{


$a.="'".$y."':{";

for($m=1;$m<=12;$m++)
{
$data_holiday=$ms->holidays($y,$m);
$a.="'".$m."': {";

foreach($data_holiday as $key=>$val)
{
$a.="'".$val['date_day']."': {tooltip: '".$val[Occasion]."', className:'holiday'},";
}

$a.="},";
}


$a.="},";

}

$a.="}";
?>

次に、次のようにJavaScriptでエコーできます:

<script type="text/javascript">
var specialDays =<?php echo $a; ?>;
</script>
于 2013-11-05T10:05:31.783 に答える