2

我正在显示页面的“查看您的订单:”部分,其中包含 json_encode 数组的成功回调。我可能在技术方面说完全错误,但希望你能看到我想要做什么。

PHP处理页面的一部分...

 $results = array(
 'roomname' => $_POST['roomX'],
 'qty' => $_POST['qtyX'],

我希望结果返回为......

房间名称:无论返回什么。(注意标签“房间名称:”)

但我只希望标签显示 POST 是否已分配值。

我认为它应该看起来如何但它不起作用的示例..

 $results = array(
 'roomname' => if (!$_POST['roomX']=='' { echo 'Room Name: ' .$_POST['roomX'];},

那有意义吗?每个订单有几十个选项,我不希望在一堆空值前面出现“标签:”。

编辑:从下面的答案中添加了代码。

// beginning of array
$results = array(
'roomname' => $_POST['roomX'],
'qty' => $_POST['qtyX'],
// more code...
// end of array.. remember not to have a comma on this last one.
);

// pasted answer between the array ending and the json_encode line.
if ($_POST['roomX'] != ''){
$results['roomname'] = "Room Name: ".$_POST['roomX'];
}

$json = json_encode($results);
echo $json;
4

3 回答 3

3

这是一种方法,您可以使用三元运算

$results = array(
 'roomname' => $_POST['roomX']==''? 'Room Name: '.$_POST['roomX']: '',
 );

如果值为空,这将添加一个空白字符串

另一种方法是稍后添加值;

$results = array(...);

if ($_POST['roomX'] != ''){
$results['roomname'] = $_POST['roomX']
}
于 2012-07-19T22:29:10.113 回答
0

您可以在将任何数据分配给 roomname 之前进行 if 语句,如下所示

$result = array( 
    'roomname' => ($_POST['roomX'] !== '')? 'Room name: '.$_POST['roomX']:''
);

我在这里使用的是一个缩短的 if 语句,其工作方式如下:(if 语句)?真假;

我希望这能帮到您。

于 2012-07-19T22:31:29.343 回答
0
$results = array();
if (isset($_POST['roomX'])) {
   $results[] = array(...);
}

如果没有 post 值,你只会得到一个空数组。

于 2012-07-19T22:34:27.477 回答