actualizando $ _POST y pasando a php vía jquery sin enviar

advertencia: esto probablemente sería bastante simple con un envío, pero debido al código #% ^ $! & de otra persona, cada envío borra todos los datos en todos los formularios en la página, por lo que no puedo usar .submit ()

esto es lo que trato de hacer:

paso 1: un enlace en una página, a través de Javascript, abre una ventana emergente. esa ventana emergente tiene algunos campos que usted completa, y usando window.opener.getElementById (‘hiddenX’). value, varios elementos html ocultos en la página original se actualizan y la ventana emergente se cierra.

paso 2: al descargar la ventana emergente, los elementos html se modifican a través de Javascript.

paso 3: los elementos html actualizados se vuelven a agregar a $ _POST en la página

Paso 4: un poco de código php ejecuta una función php utilizando los valores de $ _POST, así como los valores producidos por el código php anterior para crear y enviar un correo electrónico.

No creo que pueda pasar los valores a través de una URL de estilo GET, ya que algunos de los valores son cadenas de texto muy largas, y probablemente también algunas matrices. He intentado usar .post (window.location, {val1: “1stvalue”}) en combinación con .load () en el div que contiene el código php del paso 4. Creo que el div se actualiza, pero el valor POST permanece vacío . ¿algunas ideas?

guión:

$(".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:

 
<?php echo "
what is the val?: " . $_POST['hidden1'] . "
"; if( !empty($_POST['hidden1']) ){ if( $_POST['hidden1'] != "z" ){ echo "
what is it now?: " . $_POST['hidden1'] . "
"; //emailstuff($locnlist, $_POST['hidden1'], $_POST['hidden3']); //echo "email sent"; } } ?>

Lo resolví moviendo la función de correo electrónico y php div a una página php separada, llamada sub2.php, y luego enviando los valores de la publicación a esa página a través de 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!"); } }); 

esto en realidad no resuelve el problema inicial, pero funciona igual de bien. si alguien tiene una mejor solución, estaría encantado de saber de qué se trata