0

我想用 php 从 mysql db 获取我的数据并将它们分配给我的 javascript 数组。我的数据库中有 200 条记录,我将随机获得 10 条记录。

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

*我想要做的是将这些记录分配到一个数组中,而不是用淡入淡出效果或其他方式将它们一一显示到我的页面中。用户单击其中一个并将其发布到 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

这是我的 islem.php 页面,用于获取 ajax 数据

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. 倒数!我必须将倒计时放入一个 div 中,以便用户在 10 秒内点击它。否则我必须执行另一个错误函数来重新开始这一切。我找不到合适的倒计时脚本来演示我的功能。

只是这个。

有什么建议么?

4

6 回答 6

1

You should you ajax for this, create an ajax request and send request to other page the page will fetch data and response back to your page, as AJAX does.

$.ajax({
  type: "POST",
  url: "some.php",
  data: { XYZ: "1" }
}).done(function( msg ) {
    alert( "Data Saved: " + msg );
  });

here url is the name of page. and type is the type by which you are sending data to that url. Hope it will help you.

于 2013-11-05T09:58:26.397 回答
0

您可以对您的页面进行 ajax 调用并取回数据(您可以 json_encode() 它),然后使用它,给它fadeIn() 效果等等

于 2013-11-05T09:54:10.120 回答
0

可以使用json_encode将 php 数组回显为 JSON 。所以你可以创建一个记录数组

<?php
//query code here

$results = array();
while($row = mysql_fetch_object($myQuery)){
  $results[] = $row;
}

?>

然后在你的html中你可以这样做:

<script>
   var results = <?php echo json_encode($results); ?>;
<script>

然后根据需要在脚本中使用此变量。只需稍加改动,您就可以对 Ajax 调用使用相同的方法。

于 2013-11-05T09:57:41.313 回答
0

将您的 php 值转换为 JSON 并使用 js 恢复正常,如下所示:

PHP

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);

PHP 参考:http: //us3.php.net/json_encode

Javascript:

var myObject = JSON.parse("my json string");

jsfiddle:http: //jsfiddle.net/X6y5B/

于 2013-11-05T09:58:14.043 回答
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 回答