2010-05-18 11 views
11

deftere nakil değil eklendi ve bu bağlantı (jQuery ile) daha sonra gizli bir alan olarak forma eklenir. Sorun, formu gönderdiğimde POST yapılmamasıdır. Beni gerçekten karıştırmaya başlıyor. Mesele şu ki, gizli bir alanı forma kodluyorsam, gönderilir, fakat işlevim bir nedenden dolayı çalışmıyor. Gizli alan DOES, Firebug ile görebildiğim şekliyle formuma eklenir, ancak POST verileriyle gönderilmiyor. HTML Formu Gizli Alanlar ben kullanıcı, bir bağlantı girmek "bağlantısını ekle" düğmesini tıklayabilirsiniz bir form var JavaScript

Tıpkı formu ayrıca nelerin eklendiğini kullanıcı için gözle görülür yollayanlar hangi ibraz edilene kadar elemanlarını tutmak için JavaScript bir dizi kullanıyorum, dikkat etmek. Bağlantının PHP'deki bir diziye beslenmesini istediğim için öğenin "name" alanında [] notasyonu kullanıyorum.

 function make_hidden_element_tag(item_type, item_content, item_id) 
{ 
    return '<input type="hidden" name="' + item_type + '[]" id="hidden_link_' + item_id + '" value="' + item_content + '"/>'; 

herkes bu gönderme olmasının olası nedenlerini bir fikir var mı: İşte

benim forma ekleniyor bağlantı oluşturulmasıdır. Yukarıda belirtildiği gibi, yukarıda belirtilenle aynı olan tüm kodlanmış etiketler iyi çalışır, sadece bu etiket çalışmaz. Ben gerçekten bir şey yapmıyor, çünkü bu konuda herhangi bir etkiye sahip olduğundan emin değilim, ancak

$('#link_td').append(make_hidden_element_tag('links', link, link_array.length - 1)); 

Ben Kohana 3 framework kullanıyorum: İşte jQuery ile form etiketi ekleyerek ediyorum nasıl HTML'nin sayfaya eklendiği saat ve gönder düğmesine basıldığı zaman. #link_td ne

cevap

2

Sadece sorunu olduğunu ne olduğunu anladım. Utanıyorum ve korktum. Dediğim gibi Kohana Framework kullanıyorum. Bununla ilgili bir şey olduğundan emin değil, ancak önemli olabilir.

Ben bu sırada benim elemanları vardı:

<table> 
    <form> 
     .............form stuff....... 
    </form> 
</table> 

ve Kohana en FORM kullanarak hatta "sert kodlu" edildi elemanları da, form gönderilirken benim katma veri POST dizi katılmak için izin değildi sınıf iyi çalışıyordu. Sadece tüm şubeden önce geldiğini fark ettim. Kohana görünümde bir Form :: close'a sahip olduğumdan emin olmak için aradım, ancak açılış etiketinden hemen sonra kapanmayı hayal etmemiştim.

Yardımlarınız için çok teşekkürler. Bu sadece mantıklı olmayan hatalardan biri ama sanırım $ .append'in neden daha önce çalışmadığı mantıklı. Ben her zaman baktım ve doğrudan POST verileri ile gönderilen WERE diğer etiketlerin yanında ekleyerek gördüm ve böylece tüm bu FORM içinde gerçekleşti.

HTML'nin düzgün bir şekilde işlenmesi için gereksinimlerin neden tersini kapsamaya ihtiyacı olduğunu herkes anlatabilir mi? Ya da bu bir Kohana sorunu olma olasılığı daha yüksektir?

Herkesin yardımı için çok teşekkürler, bu iyi (ama son derece sinir bozucu) bir ders oldu.

+1

Eh, ben şahsen formu form tablo içinde mevcut formu (tablo içindeki form) yerine, böylece tablo içine hangi giriş/select/textarea eklediğimi otomatik olarak forma eklenir. ................ benim son yorum çok hedefli soruyu soran öğrenin - form öğesi iç #link_td unsurdur? :) –

+0

@master, bu/tablo içinde ve formun içinde .... formu etiketinden hemen önce kapatılmış, bu yüzden onunla gerçekten bir sorun görmedim. Tabloyu hemen takip etmenin neden önemli olduğuna emin değilim, hemen form etiketi ve kapanış formu etiketinin açılması ve ardından kapanış tablosu etiketi izler. Sorunun hala ne olduğunu anladığımdan emin değilim. – dscher

+0

Önemli. Sadece bunu takip edenlerin emin olmak için. – mplungjan

2

sevgili kullanım dinamik html dom öğelerini eklemek için jQuery'nin eklentisi, ??

+0

#link_td ben gizli bağlantılar stashing ediyorum bir tablo hücredir. .Append? - HTML elemleri eklemek için gereken başka bir jQuery eklentisi varsa, bunu bilmiyorum ... ve kullanmayı tercih etmiyorum. Bu roket bilimi değil, bence oldukça basit. – dscher

+0

evet, bu gerçekten bir roket bilimi değil, 'u ekliyorsunuz ' dize – Chirag

+0

jQuery sizin – CurtainDog

5

kesinlikle forma eklenmez veri sunucusuna yayınlanmadan değilse, giriş elemanından oluşmaktadır.

form gönderme önce aşağıdaki kod parçasını yürütme deneyin: Eğer alanını

function doBeforeSubmit(form) 
{ 
    var es = form.elements; 
    var l = es.length; 

    var msgs = []; 

    for(var idx = 0; idx < l; idx++) 
    { 
     var e = es[idx]; 
     msgs.push('name=' + e.name + ', type=' + e.type + ', value=' + e.value; 
    } 

    alert(msgs.join('\n')); 
    return false; 
} 

alamazsak ...

<form onsubmit="return doBeforeSubmit(this);"> ... </form> 

Ve fonksiyonudur, ardından "girdi" forma eklenmez ancak başka bir yerde. Eğer alanını alırsanız

... biz derin kazmak gerekir.

+1

Benzer şekilde, firebug'un Net panelini tanımak ve sevmeye değer. – CurtainDog

+1

@master ve @curtaindog, Firebug Net Panel'i zaten kullanıyorum ve gerçekten seviyorum. Maalesef verilerim, form gönderildiğinde sunucuya gönderilen POST verilerinde değil. Yukarıda belirtildiği gibi, ben eklemek istiyorum gizli eleman sadece POST verisinde biten değil ... Benim javascript işlevini çalıştırdığınızda ben bunu istiyorum tam olarak nerede benim belgeye eklemektedir. Ayrıca, gizli öğemde, formda ve İK'nin POST'a gönderildiği kodlanmış olanı tam olarak görünüyor. Bir çerçeve sorunu olup olmadığını merak ediyorum? – dscher

+0

Alanınızı formdaki öğeler listesinde aldınız mı? –

İlgili konular