Bir form tıklayarak sonra gecikmiş bir etkiye sahip

3 Cevap php

Ben bir pop-up pencerede bir formu açmak için aşağıdaki kodu var. Ben, teslim butonuna tıkladıktan sonra, 1250 milisaniye sonra bir uyarı açılan istiyorum. Sayfa formu göndermek sonucu yönlendirilir alır gibi bu şu anda çalışmıyor.

<?php
$blah = "Well"; $test = "Done";
echo '<script type="text/javascript" src="fetchlayers.js"></script>';
$formcode = "<form action=\"process.php\" method=\"post\" enctype=\"multipart/form-data \"><label for=\"file\">Filename:</label><input type=\"file\" name=\"file\" id=\"file\"/> <br /><input type=\"submit\" name=\"submit\" value=\"Submit\" onclick=\"setTimeout(function() { alert('$blah'); },1250);\" /></form>";


echo "<h1>hello</h1>
<div id='form'>
<a href='#' onclick=\"createpopup('" . htmlentities($formcode) . "'); return false;\">
click here</a>
</div>";

Ne bir formu gönderdikten sonra gecikmiş bir eylem için en iyi yol olacağını?

3 Cevap

yerine Gönder düğmesini kullanarak daha zamanlayıcı geri arama içinde document.form.submit () kullanmayı deneyin

Eğer doğru anlamak, bir form içeren bir pop-up açmak istiyorum, daha sonra formu gönderdikten sonra, bir uyarı kutusu gösterir?

Lütfen setTimeout () geri çağırma olarak window.opener kullanmayı deneyin. Eğer uyarı kutusunu görüntülemek için orijinal pencere söyleyebilir Bu yol - pop-up sayfa yönlendirildi edildiğini önemli olmamalı.

Ne bir formu gönderdikten sonra gecikmiş bir eylem için en iyi yol olacağını?

Sadece aynı pencereden bu sırayla bu iki işlemlerini yapamaz. En kısa sürede formu teslim olarak etkin arkasında geçerli sayfanın durumunu bırakarak ve yeni bir kaynak için soruyorsunuz.

Lütfen açılır itibaren ana penceresine bir referans olacaktır. Kullanıcı formu göndermek istediği zaman, ana pencerede bir gecikmiş eylem yürütmek için bazı JavaScript arayın ve sonra açılır form göndermek için izin verebilirsiniz.

EDIT: Yorumlarınız dayanarak pencereler arasında iletişim kurmak için bir yoldur; Bu gibi basit bir kurulum olabilir:

<!-- parent.html -->
<input type="button" onclick="doOpenChild();" value="Spawn Child Window" />

<script type="text/javascript">
  function doOpenChild() {
    window.open(
      "child.html",
      "child"
    );
  }

  function doSomething() {
    setTimeout(
      function(){
        alert(fileINeedToCheck);
      },
      2000
    );
  }

  // Set variable for child to update...
  window.fileINeedToCheck = "unset";
</script>

Böyle bir şey ile popup Spawn:

<!-- child.html -->
<form action="/someaction.php" name="childForm" onsubmit="communicateWithParent(this);">
  <input type="text" name="fileName" value="100" />
  <input type="submit" value="Submit" />
</form>

<script type="text/javascript">
  function communicateWithParent(aForm) {
    if(window.opener) {
      if(window.opener.fileINeedToCheck) {
        window.opener.fileINeedToCheck = aForm.fileName.value;

        // You can also call functions from the parent window...
        window.opener.doSomething();
      }
    }
  }
</script>

Ana pencerenin değişken alt pencere değerleri ile güncellenebilir.