0

フォームの一般的な選択オプションセグメントに各フォームの複数の値を保持させるには、いくつかのphpとhtmlのトリックを組み合わせる必要があります。製品のID、マークアップのID、およびマークアップの「名前」。これにより、管理ユーザーは利益率に基づいて製品の価格を選択できます。フォームを送信すると、select内の3つの値に空白の値が生成されます。

<?php

    $factor_grab = "
    SELECT * FROM product_latest_price_factor AS t1
    WHERE product_id = '".$product_id."'";
    //echo $factor_grab.'<br>';
    $factor_result = mysql_query($factor_grab) or die (mysql_error());
    while($frow=mysql_fetch_array($factor_result))
    {
        $level = $frow['level'];
        $percentage = $frow['percentage'];
        $value = $frow['value'];
        $price_level_id = $frow['price_level_id'];

//This piece does not work
        echo '<option value="{level:\''.$level.'\', price_level_id:\''.$price_level_id.'\', percentage:\''.$percentage.'\'}">'.$level.' - %'.number_format($percentage,2).' - $'.$value.'</option>';

    }
      ?>

フォームの値を確認し、Google Chromeでオプションを調べて、今回は釘付けにしたと思いましたが、見積もりが手に負えなくなっているためだと思います。各オプション値が3つの変数を格納することになっていることがわかります。Level、Price_levelおよびPrice_level_id。(値は、ユーザーが結果の価格を明示的に確認するためのものです。)3つすべてで機能するオプションをエコーアウトするにはどうすればよいですか?それは私にとって非常に強力な解決策になるでしょう。

4

2 に答える 2

1

物事を適切に回避し、問題を回避します。

echo '<option value="', 
    htmlspecialchars(
        json_encode(
            array(
                'level'=>$level,
                'price_level_id'=>$price_level_id,
                'percentage'=>$percentage
            )
        )
    ),
    '">',
    htmlspecialchars($level . ' - %' . number_format($percentage,2)),
    htmlspecialchars(' - $' . $value),
    '</option>';

これは厄介です...ここであなたにアイデアを見せようとしているだけです。このようなものを少しクリーンアップする必要があります。そのオプション値にIDのみを保持し、JavaScript配列やオブジェクト、または後で保持する場所からこれらの他のものを引き出した場合に最適です。

また、クエリでデータをエスケープしていることを確認してください。現在のところ、おそらくSQLインジェクションの対象になります。この問題を回避するために、準備されたクエリでPDOを使用する方法を学びます。

于 2012-08-23T21:14:03.360 に答える
0

どのように値を取得していますか?使用していjson_decodeますか?もしそうなら、そもそもJSONが有効であることを確認する必要があるからです。これを試して:

echo '<option value="'.htmlspecialchars(json_encode(compact("level","price_level_id","percentage"))).'">'.$level.' - %'.number_format($percentage,2).' - $'.$value.'</option>';

次に、を使用json_decodeして値を配列に取得します。

于 2012-08-23T21:15:48.710 に答える