2011-03-24 11 views
18

İçinde bir form bulunan bir vanilya html sayfam var. Formu url yoluyla önceden doldurmak için bir gereksinim ortaya çıktı. Şunlar gibi:URL formundan html form girdi alanlarını nasıl önceden doldurabilirim?

http://some.site.com/somePage.html?forename=Bob&surname=Jones 

Bunun için basit bir çözüm bulamıyorum. Birisi bunu başarmak için bazı javascript ile doğru yönde bana işaret edebilir mi? Bir javascript çözümü kullanmaktan mutluluk duyuyorum, ancak sadece bu tek kullanımlık bir kütüphanede çekmekten kaçınmayı tercih ediyorum (şu anda kullanılmamaktadır). Teşekkürler.

cevap

20

Özel bir sorgu dizesi Javascript işlevi kullanın.

Ardından, alınan değeri giriş kontrolüne atayın;

document.getElementById('mytxt').value = koko; 
11
function getUrlVars() 
{ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 

    for(var i = 0; i < hashes.length; i++) 
     { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
     } 

    return vars; 
} 

var get = getUrlVars(); 

//returns get['forename'] == bob; surname == jones 
+0

Teşekkürler, bunun basit görünüşünü beğendim. Javascriptim biraz paslanmış. "Var vars = [], hash;' 'ifadesini kısaca anlatabilir misiniz? –

+1

, virgülle ayrılmış bir listede yalnızca değişkenleri bildiriyor. vars = [] yeni bir boş dizi başlatır ve hash ayrı bir değişkendir. Aynı anda 2 ilan etmek için kısa bir yol. –

+0

Ah, elbette. Yanlışlıkla '' hash''ı '' '' 'ile ilişkilendiriyordum. –

12

PHP kullanıyorsunuz: gibi bir şey? Eğer öyleyse, bu işleri daha kolay hale getirir. Bağlantınızı yukarıdaki gibi varsayarak aşağıdakileri kullanabilirsiniz: Bu, sizin için önceden doldurulmalıdır.

+1

Neden bu oy kullanıldı? Geçerli bir soru, çünkü bunu yapmanın en kolay yolu bu olurdu. – Metropolis

+0

Düşündüm ki ben istemedim, ama korkarım PHP kullanmıyorum. –

+0

Belki de paradox870 cevabını "Ben benden önce kişiyi javascript'te anlattı, ama ben bunun PHP'de gerçekleştirilebileceğine işaret etmek istiyorum." Gibi bir şeyle cevabını vermiş olsaydı belki de işte burada bir yöntem yani ...". Eğer orijinal sorudan daha fazla yardım etmeye çalışırsanız, stackoverflow kullanıcılarının hızlı bir şekilde negatif olma eğiliminde olduklarını buldum ... bazen aşırıya kaçıyorlar. Bunu anlayabiliyorum, önce Soruyu Cevapla, ama birine başka bir şekilde yapmasını söyle, ama bu durumda soru aslında Cevaplandı ve sadece bir alternatifi işaret ediyordu. – TheSatinKnight

İlgili konular