Nasıl nesneleri bir dizi geçmek için jquery $ çukur. Gönderebilir?

2 Cevap php

Ben bir sorgu çukur bir $. Post sonucunu geçmek istiyorum.

function GetAllTasks()
    {
        $sql = "select t.id as task_id,
                description,
                createdat,
                createdby,
                max_requests,
                max_duration,
                j.name as job_name 
        from darkfuture.tasks t, darkfuture.jobs j
        where t.job_id = j.id"; 



$sqlresult = mysql_query($sql)

or die("The list of works failed: ".mysql_error($this->con));

$result = array();

while($row = mysql_fetch_assoc($sqlresult))
{
    $task = new TasksResult();
    $task->id = $row["task_id"];
    $task->description = $row["description"];
    $task->createdat = $row["createdat"];
    $task->createdby = $row["createdby"];
    $task->max_requests = $row["max_requests"];
    $task->max_duration = $row["max_duration"];
    $task->job_id = $row["job_name"];
    array_push($result, $task);
}

mysql_free_result($sqlresult);
return $result;

}

İşte ben onu aramak nasıl:

$tasksDB = new TasksDB();
$tasks = $tasksDB->GetAllTasks();

Şimdi ben buradan $ görevleri geçmek istiyorum:

$.post("views/insert_tasks.php",{'tasks[]': $tasks}, function(data)
    {

});

I know this {'tasks[]': $tasks} it's wrong but i don't know how to do it right. Some help will be appreciated. Thanks in advance!

2 Cevap

<script type="text/javascript">
$.post("views/insert_tasks.php", {tasks:<?php echo json_encode($tasks); ?>}, function(data) {

});
</script>

Bir yan not olarak size mysql_fetch_object($result, 'TasksResult'); bakmak isteyebilirsiniz

İşe yarıyor, ben burada yolu diğer kullanıcıların yanı sıra kullanabilirsiniz tüm kod yapıştırın.

. Bu tıklandığında onay kutularını ve sorgu sonuç nesne alır ve php dosyasına geçirir javascript fonksiyonu şudur:

     <script type="text/javascript">
        // Attach a click handler
        $(document).ready(function()
        {
            var clickedRows=new Array();
            var table = document.getElementById('tablesorter');
            var rowCount = table.rows.length; 
            var index = 0;
            $('#request_tast').click(function()
            {
                for(var i = 0; i < rowCount; i++) 
                {
                    var row = table.rows[i];
                    var chkbox = row.cells[0].childNodes[0];
                    if(chkbox != null && chkbox.checked == true) 
                    {
                       clickedRows[index] = i;
                       index++;
                    }
                }
                var clickrows = JSON.stringify(clickedRows);

                $.post("views/insert_tasks.php",{ clickedRows : clickrows , <?php echo "tasks:'" . json_encode($tasks) . "'"; ?> }, function(data)
                {

                });
            });
        }); 
    </script>

Bu tıklandığında onay kutularını ve sorgu sonuçları nesnesi alır php dosyasıdır:

<?php
session_start();

require_once("../database/db_connect.php");

if(isset($_POST['clickedRows'])) 
{ 
    $clickedRows = json_decode($_POST['clickedRows']);
    $tasks = json_decode($_POST['tasks']); 

    foreach($clickedRows as $i)
    {
        $task_id = $tasks[$i]->task_id;

        $myFile = "debug.txt";
        $fh = fopen($myFile, 'w') or die("can't open file");
        fwrite($fh, $_POST['tasks']);

        fclose($fh);

        $user_id = $_SESSION['id'];
        $requestedat = date('l jS \of F Y h:i:s A');
        $requestedby = $_SESSION['first'] . " " . $_SESSION['last'];


        $sql ="INSERT INTO 
        darkfuture.users_tasks
        (
          `task_id`,
          `user_id`,
          `requestedat`,
          `requestedby`
        ) 
        VALUE (
          $task_id,
          $user_id,
          '$requestedat',
          '$requestedby'
        )";

        $res = mysql_query($sql) or die(mysql_error());
   }
}
?>

Bu benim görev yönetimi için benim oyun sitesi için yapıyorum bir özelliği, ekip üyeleri onay kutularını işaretleyerek bir tablo çeşitli görevleri seçin ve görevleri kendi profiline eklenmiş olacak ve başka hiç kimse onlara çalışabilir olabilir.