GET isteği İstinat değerler

3 Cevap php
<form method="get" action="">
   <select name="name" onchange='this.form.submit()'>
      <option value="a">a</option>
      <option value="b">b</option>
   </select>
   <select name="location" onchange='this.form.submit()'>
      <option value="x">x</option>
      <option value="y">y</option>
   </select>
</form>

Ben seçeneği 'a' seçeneğini seçin ve gayet iyi çalışıyor, ama ben 'x' seçerseniz, sonra 'a' değeri nasıl tüm değerleri korumak yapmak, URL'den kaybolur?

Düzenleme: Ayrıca formu göndererek, nasıl seçilen değerler de seçme menülerde seçili kalır emin olabilirim?

Teşekkürler

3 Cevap

Bir form göndererek (bu durumda, hedef sayfa aynı sayfası size konum) penceresine hedef sayfasını yükler. Ben kuvvetle kullanıcı listeden bir öğeyi seçtiğinde not formu göndererek tavsiye ederim; Bu kullanıcı ne var beklemek oluyor değil.

Bunu yaptım ama eğer kullanıcı "şimdiye kadar" sunucu tarafı seçti alanların takip ve ardından option üzerinde uygun selected özniteliğini ayarlamak gerekir Onlar daha önce seçilen ediyorum değeri için, örneğin etiket , formu oluşturulur:

<option value='a' selected>a</option>

Fakat yine de, en iyi onların seçimleri yapmak ve daha sonra düğmeye çeşit formu göndermek izin. Eğer listelerinin içerikleri, şimdiye kadar seçtiğiniz öğelerin temelinde değiştirmek olmasını istiyorsanız, bunu elde etmek için (muhtemelen sunucuya bir Ajax sorgusu ile kombine) istemci tarafı JavaScript kullanabilirsiniz.

İşte selfURL sorununuzu çözmek için yolda sizi ayarlamanız gerekir () işlevi, hızlı bir güncelleme bulunuyor.

function selfURL() 
{ 
    $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; 
    $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; 
    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);
    $uri  = $_SERVER['REQUEST_URI'];
    $querystring = empty($_SERVER['QUERY_STRING']) ? '' : '?'.$_SERVER['QUERY_STRING'];
    return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI'].$url.$querystring;
}

form etiketi değiştirin:

<form method="get" action="<?= _SERVER["REQUEST_URI"] ?>">