【问题标题】:Retrieve object from jquery in php script从 php 脚本中的 jquery 检索对象
【发布时间】:2010-05-25 21:06:58
【问题描述】:

我正在尝试重建一个用 Json 编码的对象,但我没有得到任何价值。

JQuery:

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

});

这是检索对象的 PHP 代码:

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

执行上述代码后,$tasks 为空。

这就是我通过 $_POST['tasks'] 得到的:

[{"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"}]

我做错了什么?

【问题讨论】:

  • 我不认为你是......给定 JSON 和代码,它应该可以工作。您能否分享更多关于如何确定 $tasks 为空并验证 $_POST['tasks'] 的内容的信息?对于 $tasks 至少你应该尝试 var_dump 它......
  • 您使用的是什么版本的 PHP?上面的代码也对我有用。
  • 你不需要调用 stripslashes - 只需 json_decode($_POST['tasks'], true);

标签: php jquery mysql


【解决方案1】:

感谢您的回复布赖恩。 我得到它的工作替换:

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

通过

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

我看到变量 $tasks 的内容将其写入文件。 这是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());
   }
}
?>

【讨论】:

  • 旁注,true 的第二个参数使整个 json 对象成为关联数组而不是对象数组(指出它,因为 OP 有它而你没有)
猜你喜欢
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 2013-09-09
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多