Form Alan Değeri Nasıl Gidilir, Sonra "Stuff" kullanın

4 Cevap php

Benim PHP web sayfasında, kullanıcı bir web adresi girebileceğiniz bir giriş alanı olmasını istiyoruz. Ben aslında bir web adresi gibi görünüyor emin olmak için hızlı bir doğrulama yapmak istiyorum. Iyi, ben kullanıcı tıklayabilirsiniz bazı düğmeler arkasında URL'ye bu web adresi eklemek istiyorum.

Örneğin, belki ben W3C CSS, HTML, ve bağlantı kontrol doğrulayıcılarıyla o adresi göndermek düğmelerini tıklatın, kullanıcı web adresini girmeniz şey yaratmak istiyorum.

Ayrıca, giriş alanı giriş ve düğmelerini tıklatarak arasındaki sayfa yenileme olamaz; butonlara tıklayarak otomatik olarak değerini almak URL'yi şeyler, ve hedef sayfaya yönlendirmek gerekiyor.

Herkes standart HTML veya PHP ile bunu nasıl biliyor? Ben mümkünse JavaScript önlemek istiyorum.

Teşekkürler.

4 Cevap

HTML izlenen sayfanın süresince değişmez, ve PHP sadece sayfanın görüntülendiği 'önce' olur. Bu nedenle, JavaScript olmadan ulaşılabilir değildir.

Neden orta adam kesmek değil ve sadece çok uzun bir metin alanında var gibi, gerçek sayfa onClick için bir bağlantı sağlayabilir? Evet, javascript kullanmak gerekecek, ama bu işler daha hızlı yapacağız ve zaten W3C kısmında bitmiş oldu işin daha kullanacak. Onların URL şeması işlemek oldukça kolay gibi görünüyor. Burada CSS validator bir örnek var.

http://jigsaw.w3.org/css-validator/validator?uri= [BURAYA SİZİN URL-ŞİFRELENMİŞ URL ENTER] & profile = css21 & usermedium = & Tüm uyarı = 1 & lang = tr

chacha102 hakkıdır.

Eğer yapılması için gereken çalışma istemcisi (= tarayıcısı) tarafından yapılması gerekmektedir

javascript çok kolay bunu yapmak mümkün olacaktır. alanların içeriği değişti sonra emin bazı isteği oluşturabilirsiniz. istemci tarafı yürütme çeşit gerektirir hangi.

Sunucu tarafı kodu (php) tarayıcısı ile tebliğ kalmadan istemci tarafında alınmış eylemleri hakkında bilemez.

Eğer istemediğiniz her ikisi de - tarayıcınızın php-sunucu ile iletişim kurmasını sağlamak için, iki temel yolu ... sayfayı yeniden bazı AJAX tür ya da vardır.

ulaşılabilir değil, üzgünüm.

selamlar

Bir çözüm, ben doğru soruyu anlamak, bir form kullanmak olabilir:

  • URL için bir input type = text alanı
  • bir onaylayıcısına başına Gönder düğmesini; hepsi aynı adı taşıyan

Böyle bir şey:

<html>
<head>
    <title>Test ^^</title>
</head>
<body id="body-front">
    <form method="get" action="">
        <input type="text" value="" name="url" />
        <input type="submit" name="validator" value="HTML Validator" />
        <input type="submit" name="validator" value="CSS Validator" />
    </form>
</body>
</html>

Form mesajlar (gets, actually, here ^^ ) kendi üzerine; eğer ibraz edilmiş ise PHP script başında, yani kontrol edebilirsiniz.

O varsa, var

  • URL Tamam olup olmadığını kontrol edin
  • (Bu değeri özniteliği aracılığıyla) tıklandığı düğmesi algılamak
  • Doğru URL yönlendirme

. Örneğin, ben sadece yayınlanan formu içeren php dosyasının üstüne bu koyabilirsiniz:

<?php
    if (isset($_GET['url'])) {
        // TODO : check the URL
        // if not... do what you have to (like re-display the form)
        if ($_GET['validator'] == "HTML Validator") {
            header('Location: http://validator.w3.org/check?verbose=1&uri=' . urlencode($_GET['url']));
            die;
        } else if ($_GET['validator'] == "CSS Validator") {
            header('Location: http://jigsaw.w3.org/css-validator/validator?profile=css21&warning=0&uri=' . urlencode($_GET['url']));
            die;
        }
        // Not one the buttons we know => re-display the form
    }
?>

Ben sadece ne dedi yapar:

  • Form teslim edilmiştir?
  • bir URL OK (that's your job to say ;-) )
  • hangi düğme seçilmiş oldu?
  • Doğru URL te yönlendirme

Bunun üzerine, kullanıcı formu gönderdiğinde, ve o doğrudan o seçim validator web sitesine gönderilir gibi ona hissediyor.

JS her türlü olmadan, başka bir yol göremiyorum ...

(Note : I tested this only on Firefox ; would be better to test with other browsers ^^ particularly with the "all submit buttons have the same name" thing)


Hope this helps... Sorry if I didn't understand the question...