0

phpオプション値変数$option_value['price']を文字列としてjavascriptに渡す方法はありますか?その後、異なるオプションが選択されるたびに、javascript'は文字列を新しい値で更新します。onchange()を試しましたが、何か間違ったことをしているに違いありません。私の間違いは、phpがサーバー側で、javascriptがクライアント側であるためだと確信していますが、この2つを希望どおりに動作させる方法がわかりません。

<?php if ($options) { ?>
    <?php foreach ($options as $option) { ?>
    <?php if ($option['type'] == 'select') { ?>
    <span id="option-<?php echo $option['product_option_id']; ?>" class="option">

<select name="option[<?php echo $option['product_option_id']; ?>]" onchange="getIt(this)">
        <?php foreach ($option['option_value'] as $option_value) { ?>
        <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
        <?php if ($option_value['price']) { ?>
        <?php $option_value['price']; ?>
        <?php } ?>
        </option>
        <?php } ?>
      </select>
</span>

私が試してみました:

<script type="text/javascript"> 
function getIt(elm) {
var val = elm.options[elm.selectedIndex].text;
window.alert(val);
}
</script>

<script type="text/javascript">
function getIt() {
var val = "<?php $option_value['price']; ?>";
window.alert(val);
}
</script>
4

3 に答える 3

1
<script type="text/javascript">
function getIt() {
var val = "<?php echo $option_value['price']; ?>";
window.alert(val);
}
</script>

そのようです?あなたが「エコー」を忘れたように私には見えます。

編集-

<script type="text/javascript">
var val = "<?php echo $option_value['price']; ?>"; 
function getIt(elm) {
    val = elm.options[elm.selectedIndex].text;
    window.alert(val);
}
</script>
于 2012-08-30T03:09:33.517 に答える
1

さて、私の前のエントリを取り消します。

あなたがする必要があるのはあなたがあなたと一致するときselectedにあなたの要素にキーワードを追加することです<option>option_value['price']

ここで、yuouはデータを少し異なる方法で配置する必要があります。$option_value['product_option_value_id']JavaScriptで、にマップする配列を準備します$option_value['price'];。あなたがあなたを構築するとき、その価格が最初にphpから来たものと一致するかどうかをチェックする<select>たびに。$option_value['product_option_value_id']

getItは単に<option value="___">値を取得し、そのマップでそれを見つけて、alert()ウィンドウを使用してユーザーに表示します。

于 2012-08-30T03:14:32.360 に答える
1

これがあなたがそれをすることができる方法の例です。あなたがしなければならないことは次のとおりです。

  1. コードを分析します(私はグーグルのアカウントからjqueryを使用していることに注意してください。ある時点であなたのウェブサイトにjqueryをインストールし、グーグルのものの代わりにこれを使用する必要があります。
  2. fruits例のように配列を作成します。

ここでこれが機能していることを示すページを用意しました:http://jsfiddle.net/7uudp/

以下はそれが含むものです。この例では変数を使用していないことに注意してください。あなたはそれらをあなたが望む/必要な方法で使う必要があるでしょう。entry_fruitまた、選択するデフォルトのものを選択する方法を示すために定義しました。それがお役に立てば幸いです。

<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">

fruits = [{n:"apple",p:1},{"n":"strawbery",p:3}];
entry_fruit="strawbery";

function build_select(select,list,which)
{
    $.each( list, function(i,v){
         var selopt="" ;
         if ( v.n == which ) selopt="selected" ;
         $(select).append("<option "+selopt+" value="+i+">"+v.n+" - $"+v.p+"</option>");
     }) ;
}

$(document).ready(function(){
    build_select($("select[name=fruits]"),fruits,entry_fruit);
     $("select[name=fruits]").change(function(){
         alert("Price is $" + fruits[$(this).val()].p);
     }) ;
})

</script>
</head>
<body>
<select name="fruits"></select>
</body>
</html>
于 2012-08-30T21:09:48.510 に答える