Form sunulmasından sonra seçilen değerleri tutmak

3 Cevap php
<form method="get" action="">
   <select name="name">
      <option value="a">a</option>
      <option value="b">b</option>
   </select>
   <select name="location">
      <option value="x">x</option>
      <option value="y">y</option>
   </select>
   <input type="submit" value="Submit" class="submit" />
</form>

Formu göndererek, nasıl seçilen değerler dropdowns seçili kalır emin olabilirim? Bu form içinde wordpress (PHP) 'dir.

3 Cevap

Birçok if-else yapıları önlemek için, otomatik olarak hile yapmak javascript atalım:

 <select name="name" id="name">
  <option value="a">a</option>
  <option value="b">b</option>
 </select>

<script type="text/javascript">
  document.getElementById('name').value = "<?php echo $_GET['name'];?>";
</script>

 <select name="location" id="location">
  <option value="x">x</option>
  <option value="y">y</option>
 </select>

<script type="text/javascript">
  document.getElementById('location').value = "<?php echo $_GET['location'];?>";
</script>

Tek çözüm Js:

var tmpParams = decodeURIComponent(window.location.search.substr(1)).split("&");
for (var i = 0; i < tmpParams.length; i++) {
    var tmparr = tmpParams[i].split("=");
    var tmp = document.getElementsByName(tmparr[0])[0];
    if (!!tmp){
        document.getElementsByName(tmparr[0])[0].value = tmparr[1];
    }
}

veya jquery kullanarak eğer değiştirebilirsiniz

 var tmp = document.getElementsByName(tmparr[0])[0];
 if (!!tmp){
     document.getElementsByName(tmparr[0])[0].value = tmparr[1];
 }

ile:

 $('*[name="'+tmparr[0]+'"]').val(tmparr[1]);

Wordpress zaten Jquery kullanır beri böyle bir şey deneyebilirsiniz:

var POST=<?php echo json_encode($_POST); ?>;
for(k in POST){
  $("#"+k).val(POST[k]);
}