2010-05-25 3 views
0

Я пытаюсь перестроить объект, закодированный Json, но я не получаю никакого значения.Извлечь объект из jquery в php-скрипт

JQuery:

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

}); 

это PHPcode для получения объекта:

$tasks = json_decode(stripslashes($_POST['tasks']), true); 

$ задач является пустым после выполнения кода выше.

Это то, что я получаю с $ _POST [ 'задачи']:

[{"task_id":"1","description":"<p>Fazer heroi</p>","createdat":"Saturday 22nd of May 2010 11:37:37 PM","createdby":"Miguel Cardoso","max_requests":"2","max_duration":"5","job_id":"Concept Artist"},{"task_id":"2","description":"<p>teste2</p>","createdat":"Sunday 23rd of May 2010 11:23:55 AM","createdby":"Miguel Cardoso","max_requests":"2","max_duration":"5","job_id":"3D Modeller"},{"task_id":"3","description":"<p>teste3</p>","createdat":"Sunday 23rd of May 2010 11:45:39 AM","createdby":"Miguel Cardoso","max_requests":"1","max_duration":"10","job_id":"Writer"}] 

Что я делаю неправильно?

+1

Я не думаю, что вы ... дали JSON и код, он должен работать. Вы можете поделиться дополнительной информацией о том, как определить, что $ заданы пустые, и проверить содержимое $ _POST ['tasks']? Для $ задач по крайней мере вы должны попробовать var_dump это ... – ivans

+0

Какую версию PHP вы используете? Вышеприведенный код работал и на меня. –

+0

Вам не нужно вызывать stripslashes - просто json_decode ($ _ POST ['tasks'], true); –

ответ

0

Спасибо за ваш ответ Брайан. я получаю это работает замена:

$tasks = json_decode(stripslashes($_POST['tasks']), true); 

по

$tasks = json_decode($_POST['tasks']); 

Я видел содержимое переменной $ задач, пишущих в файл. Вот весь код РНР файла:

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

Сторона примечания, второй аргумент для истины делает весь объект json ассоциативным массивом вместо массива объектов (указывая его, поскольку OP имел его там, а вы нет) –

Смежные вопросы