2

json_encode 配列の成功コールバックを含むページの「Review Your Order:」部分を表示しています。技術的には完全に間違っていると言ったかもしれませんが、私がやろうとしていることを理解していただければ幸いです。

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

ここに1つの方法があります。3項演算を使用できます

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

値が空の場合、空白の文字列が追加されます

もう 1 つの方法は、後で値を追加することです。

$results = array(...);

if ($_POST['roomX'] != ''){
$results['roomname'] = $_POST['roomX']
}
于 2012-07-19T22:29:10.113 に答える
0
$results = array();
if (isset($_POST['roomX'])) {
   $results[] = array(...);
}

post 値がない場合は、空の配列になってしまいます。

于 2012-07-19T22:34:27.477 に答える
0

次のように、データを roomname に割り当てる前に if ステートメントを作成できます

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

ここで使用したのは短縮された if ステートメントであり、次のように機能します: (if ステートメント)? 真/偽;

これがお役に立てば幸いです。

于 2012-07-19T22:31:29.343 に答える