【问题标题】:Saving form values to an Object as attributes (Associative Array, PHP, PDO, lunk head)将表单值作为属性保存到对象(关联数组、PHP、PDO、lunk head)
【发布时间】:2018-05-02 04:42:49
【问题描述】:

我正在处理 AJAX CRUD,但无法在 Assoc 中获取表单值。数组以单独保存为 MySQL 查询的对象属性。

我正在关注enter link description here,但我使用的是 PDO 而不是 mysqli。

不是一个 php 人,这是我第一次使用 PDO 和 JSON 进行 OOP。

vardump() 显示输入文本在那里...

// get posted data
$data = json_decode(file_get_contents("php://input"), true);

// set event property values
$event=>mainTitle = $data->main-title;
$event->subTitle = $data->sub-title;
$event->eventUrl = $data->event-url;

还有垃圾场:

array(9) {
["main-title"]=>
string(15) "Test Main Title"
["sub-title"]=>
string(14) "Test Sub title"
["event-url"]=>
string(9) "Test URTL"
...

object(Event)#3 (11) {
["conn":"Event":private]=>
object(PDO)#2 (0) {
}
["table_name":"Event":private]=>
string(8) "tblEvent"
["mainTitle"]=>
int(0)
["subTitle"]=>
int(0)
["eventUrl"]=>
int(0)
...

【问题讨论】:

标签: php json rest api pdo


【解决方案1】:

尝试将 $event=>mainTitle 更改为 $event->mainTitle

【讨论】:

  • 红鲱鱼。将代码复制到此处时,我犯了一个错字。不过眼光不错。
【解决方案2】:

您已向 json_decode() 传递了第二个参数,这意味着您想要获取一个数组而不是对象。所以就像使用数组一样。替换为$event->mainTitle = $data['main-title'];

【讨论】:

  • 我给你这个,因为我给的数量有限。
【解决方案3】:

我在这里找到了部分问题的答案:Handling-JSON-like-a-boss-in-PHP

json_decode() 能够返回对象或关联数组。

//For an object: 
$result = json_decode($string);

//For an Assoc. Array: 
$result = json_decode($string, true);

我苦苦挣扎的是 var_dump() 为两者返回几乎完全相同的结果。它们确实必须是同一类型。

我的问题的第二部分更颠覆性的是对象属性名称中有连字符。我没有找到原因,但为了清楚我的代码,我只是删除了它们。

【讨论】:

    猜你喜欢
    • 2019-06-02
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2021-03-11
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多