0

以下のスクリプトは正常に動作し、JavaScript と PHP を組み合わせています。ボタンを押すと、その値 ( = 20) が取得され、既存の項目リスト (A、B、C) が(1,2,3… 10)buttonValue で停止した新しいリストに置き換えられます。$i <= 10

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    <?php $i = 1; while ($i <= 10): ?>
    $('<option><?php echo $i; ?></option>').appendTo('#Country select'); 
    <?php $i++; endwhile; ?>
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>

$i <= 10代わりに表示されるように PHP ループを変更したいと思い$i <= $the_buttonValueます (数字 1、2、3… 20 を表示するようにボタンの値を割り当てます)。

load()jQuery AJAX functions: 、get()またはメソッドを試しajax()て、変数をサーバーに送信しましたが、上記の要求を解決していないようです。

PHP と JavaScript の 2 つの側面が異なる方法で通信していること、および AJAX 要求が新しい要件を機能させる可能性があることは知っていますが、その方法はわかりません。

要求どおりに機能させるためのヒントをいただければ幸いです。

4

3 に答える 3

2

この特定の問題にはphpは必要ありませんが、何らかの理由でphpを使用する必要がある場合は、次のようなjquery load()関数を使用できます。

your.html

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    $('#Country').load('your.php?value='+buttonValue+' #Country')
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>

your.php

<div id="Country">
      <select id="City">

<?php 
    $val = $_GET['value']; //this will be your button value
    $i = 1;
    while (true)
    {
?>
        <option value="">
                    <?php echo $i++; if($i==$val) break; ?>
        </option>
<?php
    }
?>
      </select>
</div>

私の最初のstackoverflowの答え、あなたが投票することを願っています:)

于 2013-01-12T21:58:50.780 に答える
0

最も簡単な方法は、ボタンが送信されたときに、その情報を Javascript 変数と PHP 変数の両方にプッシュすることだと思います。JavaScript の値に基づいて PHP 変数と関数を設定しようとすると、AJAX データを投稿して JSON 応答を取得することがはるかに困難になる可能性があるため、その同等の PHP 変数のループをベースにします。

JavaScriptでそのループを実行することもできますが、それはすべてあなたの好みです。PHP は常にサーバー側で処理され、JavaScript はクライアント側で実行されるため、JavaScript 変数を PHP 変数にプッシュするのは困難です。

JavaScript ですべてを行う例は次のようになります。それ以外の

<script>
$(document).ready(function(){
  $("button").click(function(){

    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    var i = 1;
    while(i <= buttonValue){
    $('<option>' + i + '</option>').appendTo('#Country select'); 
    i++;
    }
  });
});
</script>
于 2013-01-12T21:24:16.250 に答える
0

PHP はまったく必要ありません。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    var buttonValue = $(':button').val();
    alert(buttonValue);

    $("#City > option").remove(); // remove all items from list
    for (var i = 0; i < buttonValue; i++) {
        $('<option>' + i + '</option>').appendTo('#Country select'); 
    }
  });
});
</script>

<body>
    <button value="20">click to start</button>
    <div id="Country">
      <select id="City">
        <option value="">A</option>
        <option value="">B</option>
        <option value="">C</option>
      </select>
    </div>
</body>
于 2013-01-12T21:27:45.483 に答える