2010-05-24 38 views
0

我想通過$ .post傳遞一個查詢的結果。

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; 

} 

這是我如何稱呼它:

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

現在我想通過這裏傳遞$任務:

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

}); 

我知道這{ '任務[]':$任務}這是錯誤的,但我不知道如何做到這一點。 一些幫助將不勝感激。 在此先感謝!

回答

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

}); 
</script> 

在一個側面說明,你可能想看看mysql_fetch_object($result, 'TasksResult');

+0

或者可能使用的東西除了古mysql_庫,像庫MySQLi或PDO ... – 2010-05-25 06:18:29

+0

有了這個代碼給我下面的錯誤: 無效porperty ID 我得到了在調試這樣的事情:

0
{tasks: 
    [id: 42, title: 'a'], 
    [id: 43, title: 'b'], 
    ... 
} 
0

它的工作,我會在這裏粘貼所有這樣其他用戶可以使用它,以及代碼。

這是JavaScript函數獲取點擊的複選框,查詢結果對象,並將其傳遞到PHP文件:

 <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> 

這是接收點擊的複選框,查詢結果對象PHP文件:

<?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()); 
    } 
} 
?> 

這是一個功能我做了我的遊戲網站,任務管理,團隊成員可以通過檢查複選框和任務將被添加到他們的個人資料,並選擇在表中的幾個任務沒有其他人可以在他們身上工作。