0

問題:

フォームがPHP経由で送信された後、どの送信ボタンが押されたかをjQueryで検出します。

シナリオ:

3 つのボタンがあります。

  1. 提出-更新1
  2. 送信-update2
  3. 送信-update3

$_POST['submit-update1'] が PHP で設定されている場合、jQuery は ID "collapseOne" の div にクラスを追加する必要があります。例えば:

if (PHP POST submit button 1 is submitted)
{
    $('#collapseOne').addClass('in');
}

if (PHP POST submit button 2 is submitted)
{
    $('#collapseTwo').addClass('in');
}

if (PHP POST submit button 3 is submitted)
{
    $('#collapseThree').addClass('in');
}

DIV 要素:

<div class="accordion" id="accordion2">
    <div class="accordion-group">
      <div class="accordion-heading">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseOne">
          Title 1
        </a>
      </div>
      <div id="collapseOne" class="accordion-body collapse">
        <div class="accordion-inner">
            Text here
        </div>
      </div>
    </div>
    <div class="accordion-group">
      <div class="accordion-heading">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseTwo">
          Title 2
        </a>
      </div>
      <div id="collapseTwo" class="accordion-body collapse">
        <div class="accordion-inner">
          Text here
        </div>
      </div>
    </div>
    <div class="accordion-group">
      <div class="accordion-heading">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapseThree">
          Title 3
        </a>
      </div>
      <div id="collapseThree" class="accordion-body collapse">
        <div class="accordion-inner">
          Text here
        </div>
      </div>
    </div>
</div>

送信ボタン:

<button type="submit" id="submit-update1" name="submit-update1">Update 1</button>
<button type="submit" id="submit-update2" name="submit-update2">Update 2</button>
<button type="submit" id="submit-update3" name="submit-update3">Update 3</button>

どんなアドバイスでも大歓迎です。事前に感謝します!

4

3 に答える 3

2
  <form method="post" id="many_buttons">
    <input type="hidden" id="submit_button" name="button_pressed" />

    <button type="submit" id="submit-update1" name="submit-update1">Update 1</button>
    <button type="submit" id="submit-update2" name="submit-update2">Update 2</button>
    <button type="submit" id="submit-update3" name="submit-update3">Update 3</button>
  </form>

  <script>
  $('#many_buttons button[type=submit]').click(function(){
    $('#submit_button').val($(this).attr('name'))
  })
  </script>

次に、サーバー側で:

  <?php
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $button = $_POST['button_pressed'];

    if ($button == 'submit-update1')
      $div = 'collapseOne';
    elseif ($button == 'submit-update2')
      $div = 'collapseTwo';
    elseif ($button == 'submit-update3')
      $div = 'collapseThree';
  }
  ?>

最後に、この JavaScript を印刷します。

  <?php if (!empty($div)) : ?>
  <script>$('#<?php echo $div ?>').addClass('in')</script>
  <?php endif ?>
于 2012-06-02T19:02:49.527 に答える
0

投稿送信ボタンについては既に理解していますが、これらの変数に基づいてページを操作するのに問題があると思います。次のように、動的スクリプトを使用して、投稿変数に基づいていくつかの変数を設定できます。

echo "<script type='text/javascript'>";
if (isset($_POST['submit-update1']) && $_POST['submit-update1'] == true) {
    echo "var submitUpdate1 = true;";
}
else {
    echo "var submitUpdate1 = false;";
}
///...do similar things for the rest of your post variables
echo "</script>";

次に、JavaScript で、ドキュメントの準備ができたら、上で定義した変数にアクセスするだけです。

于 2012-06-02T18:54:52.887 に答える
0

これを html に追加します。

<input type="hidden" name="submit" value="" />

そして、これはjQueryです:

$('button[type="submit"]').on('click', function(e){
    $('form input[name="submit"]').val($(this).attr('name'));
    $('form').serialize();
});
于 2012-06-02T19:22:59.737 に答える