0

ボタンでそれぞれ更新可能な div のセクションが必要です。ボタンが機能していて、情報がjqueryの.postでデータベースに送信されています。更新したいアイテムの値を送信するには、「this」を使用するので問題ありません。しかし、私は同じクラスの個々のdivを持っているので、.done関数はこれらのどれを更新するかをどのように知るのでしょうか? 私はまだこの種のことを行う方法を学んでいます。前もって感謝します!

$(".confirm-request-show").click(function(e) {
    e.preventDefault();
    $.post("confirmrequest.php",
    {
        requestID: $(this).val(),
        action: 'confirm'
    })
    .done(function() {
        var id = $(this).val();
        $('#confirm-request-div-' + id).empty().load('confirmrequestdiv.php?requestID=' + id );
        $(this).attr("disabled", true);
    })
});

更新: 動作しました。done() 関数の前に id を宣言するだけで済みました。理由がわからないので、誰かがこのニュアンスを説明してくれませんか?

$(".confirm-request-show").click(function(e) {
    e.preventDefault();
    var id = $(this).val();
    $.post("confirmrequest.php",
    {
        requestID: id,
        action: 'confirm'
    })
    .done(function() {          
        $('#confirm-request-div-' + id).empty().load('confirmrequestdiv.php?requestID=' + id );
        $(this).attr("disabled", true);
    })
});
4

3 に答える 3

0

この問題に取り組む必要が生じたとき、各 div 要素に関連付けられた一意の ID を作成しました。たとえば、id="element1" の場合、ID の数字部分を onclick="function(1)" のように JavaScript に渡します。ただし、これには div 要素内で onclick イベントを使用する必要があります。

次に、jquery内で2つを関連付けることができます $('#element' + id)...... など.

于 2013-10-18T19:00:59.413 に答える
0

.confirm-request-showボタンが内部にネストされている場合、次の.confirmrequestdivようなことができます。

HTML:

<div class="confirmrequestdiv">
    <input type="submit" class="confirm-request-show" value="1" />
</div>

JS:

$(this).closest('.confirmrequestdiv').empty().load( "confirmrequestdiv.php?showID=" + $(this).val() );

.confirmrequestdivこれは、クリックされたボタンを開始点として使用し、クラス を持つ先祖を探しています。

ボタンが div 内にネストされていない場合、次のような共通の祖先を見つけることができます。

HTML:

<div class="commonancestor">
    <div class="confirmrequestdiv">
    </div>
    <input type="submit" class="confirm-request-show" value="1" />
</div>

JS:

$(this).closest('.commonancestor').find('.confirmrequestdiv').empty().load( "confirmrequestdiv.php?showID=" + $(this).val() );

要素に便利な共通の祖先がない場合 (または、すべてのクラスが共通のコンテナーにある場合は、次のアプローチconfirmrequestdivを取ることができます。id

HTML:

<div>
    <div class="confirmrequestdiv" id="confirmrequestdiv-1"></div>
    <div class="confirmrequestdiv" id="confirmrequestdiv-2"></div>
    <div class="confirmrequestdiv" id="confirmrequestdiv-3"></div>
    <div class="confirmrequestdiv" id="confirmrequestdiv-4"></div>
</div>
<div>
    <input type="submit" class="confirm-request-show" value="1" />
    <input type="submit" class="confirm-request-show" value="2" />
    <input type="submit" class="confirm-request-show" value="3" />
    <input type="submit" class="confirm-request-show" value="4" />
</div>

JS:

var id = $(this).val();
('#confirmrequestdiv-' + id).empty().load("confirmrequestdiv.php?showID=" + id);

しかし、実際に役立つには、HTML 構造を確認する必要があります。

于 2013-10-18T18:53:43.770 に答える
0

通常、これは ID を使用する場所です。更新する div に一意の ID を指定$('#whateverIDyouGaveTheDiv')し、JavaScript で使用するだけです。

于 2013-10-18T18:51:58.370 に答える