2010-05-24 9 views
0

Je veux passer le résultat d'une requête à travers un $ .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; 

} 

Voici comment je l'appelle:

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

Maintenant, je veux passer des tâches $ par ici:

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

}); 

Je sais ce { 'tâches []': tâches $ } c'est faux mais je ne sais pas comment le faire correctement. De l'aide sera appréciée. Merci d'avance!

Répondre

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

}); 
</script> 

D'un côté note que vous voudrez peut-être regarder mysql_fetch_object($result, 'TasksResult');

+0

Ou peut-être en utilisant quelque chose en dehors de l'ancienne bibliothèque de mysql_, comme mysqli ou AOP ... –

+0

Avec ce code m'a donné l'erreur suivante: id porperty invalide j'ai eu quelque chose comme ça dans debug:

+0

J'ai modifié le code de la publication d'origine, essayez plutôt cela. – Petah

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

Il travaille, je vais coller ici tout le code de cette façon les autres utilisateurs peuvent l'utiliser aussi bien.

Ceci est la fonction javascript qui obtient les cases à cocher cliqués et l'objet de résultat de la requête et les transmet au fichier .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> 

Ceci est le fichier php qui reçoit les cases à cocher cliqués et l'objet de résultats de la requête :

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

Ceci est une fonctionnalité que je fais pour mon site Web de jeu pour la gestion des tâches, les membres de l'équipe peuvent choisir plusieurs tâches dans un tableau en cochant les cases à cocher et que les tâches seront ajoutés à leur profil et pas un autre peut travailler sur eux.

Questions connexes