注意:これはおそらくサブミットではかなりシンプルになりますが、他人の#%^ $! &コードは、すべてが提出するページ上のすべてのフォーム上のすべてのデータが消去されますので、私は(.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>