2016-07-21 17 views
0

注意:これはおそらくサブミットではかなりシンプルになりますが、他人の#%^ $! &コードは、すべてが提出するページ上のすべてのフォーム上のすべてのデータが消去されますので、私は(.submitを使用することはできません)ここ

は、私がやろうとしているものです:

ステップ1:ページ上のリンクを介してJavascriptは、ポップアップを開きます。そのポップアップにはいくつかのフィールドがあり、window.opener.getElementById( 'hiddenX')。valueを使用すると、元のページ上のさまざまな非表示html要素が更新され、ポップアップが閉じられます。

ステップ2:ポップアップのアンロード時に、HTML要素がJavascriptで変更されます。

ステップ3:更新されたHTML要素がページ上の$ _POSTに戻って追加される

ステップ4:PHPコードのビットは、$ _POSTならびに以前によって生成される値からの値を使用して、PHPの機能を実行PHPコードを作成し、電子メールを送信する。

私はGETスタイルのURLで値を渡すことはできませんが、値の一部は非常に長いテキスト文字列であり、おそらくいくつかの配列である可能性もあります。私はステップ4からのPHPコードを含むdivの.load()と組み合わせて.post(window.location、{val1: "1stvalue"})を試してみました。私はdivの更新は考えていますが、POST値は空のままです。何か案は?

スクリプト:

$(".email1").on('click', function (event) { 
     var win1 = window.open("../sub1.php","_blank","height=450,width=510, status=yes,toolbar=no,menubar=no,location=no"); 
     $(win1).on('unload', function (event){ 
      if(document.getElementById('hidden1').value != "z"){ 
       $tosend2 = document.getElementById('hidden3').value; 
       ...... // various changes to $tosend2 and other elements on the page 
       $.post(window.location, { hidden3 : "abc" }); //temporarily use "abc" instead of $tosend2 
       $("#emaildiv").load(location.href+" #emaildiv2>*",""); 

       } 
     }); 
}); 

HTML/PHP:

<div style="display : hidden" name="emaildiv" id="emaildiv"> 
    <input type="hidden" name="hidden1" id="hidden1" value="z" /> 
    <input type="hidden" name="hidden3" id="hidden3" value="z" /> 
</div> 
<div style="display : hidden" name="emaildiv2" id="emaildiv2"> 
<?php 
    echo "<div class='error'> what is the val?: " . $_POST['hidden1'] . " </code></div>"; 
    if(!empty($_POST['hidden1'])){ 
    if($_POST['hidden1'] != "z"){ 
     echo "<div class='error'> what is it now?: " . $_POST['hidden1'] . " </code></div>"; 
    //emailstuff($locnlist, $_POST['hidden1'], $_POST['hidden3']); 
    //echo "email sent"; 
    } 
} 
?> 
</div> 

答えて

0

私はsub2.phpと呼ばれる、別のPHPページに電子メール機能とPHPのdiv要素を動かすことによって、これを解決した後、送信AJAXを経由して、そのページへのポストの値が

     $.ajax({ 
          type: 'post', 
          url: '/routing/sub2.php' , 
          data: { hidden1 : document.getElementById('hidden1').value , 
            hidden2 : document.getElementById('hidden2').value , 
            hidden4 : document.getElementById('hidden4').value , 
            locnlist : loclist }, 
          success: function() { 
          alert("Email has been sent!"); 
          } 
         }); 

これは実際には最初の問題を解決していませんが、それだけでWELとして働きますl。 誰かがより良い解決策を持っているなら、私はそれが何であるかを非常に嬉しく思っています

関連する問題