nasıl ben birden fazla form değerleri almak ve onları teslim edebilir?

4 Cevap php

Ben sayfamda DIV'leri içinde çeşitli formları vardır.

Ben bir metin alanı içerir ve her zaman görünür bir formu var ve kullanıcı anahtarı 'enter' vurur ve gönderir bu nerede ...

Ben sayfasındaki diğer şekillerde seçilen değerleri almak, ve benim PHP kodu "TÜM DEĞERLER" kullanımı ve bir mysql veritabanı arama böylece, tek tek, hepsini bir arada değil göndermek istiyorum ...

Bu "<form onsubmit>" bir javascript çağırmak kullanarak javascript ile mümkün mü?

Herhangi kodları mutluluk duyacağız ...

teşekkürler

4 Cevap

Bazı Javascript hokus-pokus olmadan, yapamazsın. Bir formu = bir istek.

Sen can JS ile bunu ve bir kaç seçenek var. Kolay sayfadaki tüm formlar aracılığıyla döngü olacak ve temelde bir forma tüm giriş alanları ve değerleri çoğaltmak ve daha sonra bu kombine formu göndermek istiyorum.

JQuery ile böyle bir şey giderdim:

$("form").submit(function() {
    combineAndSendForms();
    return false;        // prevent default action
});

function combineAndSendForms() {
    var $newForm = $("<form></form>")    // our new form.
        .attr({method : "POST", action : ""}) // customise as required
    ;
    $(":input:not(:submit, :button)").each(function() {  // grab all the useful inputs
        $newForm.append($("<input type=\"hidden\" />")   // create a new hidden field
            .attr('name', this.name)   // with the same name (watch out for duplicates!)
            .val($(this).val())        // and the same value
        );
    });
    $newForm
        .appendTo(document.body)  // not sure if this is needed?
        .submit()                 // submit the form
    ;
}

You need to make a script which will collect the data from the forms, and inject them into the only form that is visible. Only one form will be submitted, you can not submit multiple forms. You can create multiple hidden fields, or you can construct a single hidden field in that form, then use javascript to collect all the data from the various forms, then create a JSON string, set the value of the hidden one, and submit.

Edit: Say you have a single hidden input like this:

<input type='hidden' name='hiddenfield' id='hiddenfield' />

Bunu yapmak için JQuery kullanabilirsiniz:

$('#hiddenfield').val('myvalue');

Diğer formları değerini almak için ('# elementID') $ çağırarak gibi basit. Val ()

Form gönderilmeden önce. JQuery kullanmak için, jquery web sitesine gidin kütüphane indirmek ve (onların kurulum kılavuzu izleyin) bağlamak.

Form etiketi bütün Page (eğer mümkünse) sarın ve iş kuralı doğrulama işlemek için Javascript / w boyunca, sunucu tarafı kodu kullanabilirsiniz.

Bir kesmek çözümün tür, ancak javascript ile beceri düzeyine bağlı Javascript "kesmek" için gerekliliğini en aza indirmek gerekir.

Eğer bu forma bir onSubmit eklemek ve sonra javascript ile diğer değerleri toplayabilir:

<input type="hidden" name="hidden1" id="hidden1" />
<input type="hidden" name="hidden2" id="hidden2" />
<script>
document.getElementById("the_form").onsubmit = function(){
    document.getElementById("hidden1").value = document.getElementById("other-field1").value;
    document.getElementById("hidden2").value = document.getElementById("other-field2").value;
};
</script>