pasar variables, editar tabla y agregar registro en otra

Anibal Guebel
18 de Octubre del 2008
Preciso una ayuda (soy principiante):

En página1.php tengo un formulario con los campos formCampo11, ... formCampo14, formCampo21, ... formCampo25.

Sé que para que los campos pasen a la página2.php como variables, basta con definir action="pagina2.php" en el
formulario.

Y sé que para actualizar campos en tabla1 e insertar registro en tabla2, funciona poner como "action" en el form la función "$editFormAction", cujo código aparece a seguir.

Lo que no se es cómo hacer para que, además de actualizar tabla1 e insertar en tabla2, la página también pase las variables a la página2.php, cosa que deja de hacer cuando cambio de action="pagina2.php" a action="<php echo=$editFormAction ?>" en el form.

Gracias!

código que actualiza e inserta y que quiero modificar:
------------------------------------------------------

<?php

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE tabela1 SET campo11=%s, campo12=%s WHERE Login=%s",
GetSQLValueString($_POST['formCampo11'], "text"),
GetSQLValueString($_POST['formCampo12'], "text"),
GetSQLValueString($_POST['formLogin'], "text"));

mysql_select_db($database_connection, $connection);
$Result1 = mysql_query($updateSQL, $connection) or die(mysql_error());

$updateGoTo = "pagina2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
$updateGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $updateGoTo));
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO tabela2 (campo21, campo22, campo23, campo24) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['formCampo21'], "text"),
GetSQLValueString($_POST['formCampo22'], "text"),
GetSQLValueString($_POST['formCampo23'], "double"),
GetSQLValueString($_POST['formCampo24'], "text"));

mysql_select_db($database_connection, $connection);
$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());



$insertGoTo = "Pagina2.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}

?>

adrian
18 de Octubre del 2008
Eso se puede solucionar con javascript.

ya vez que al guardar los datos en la base de datos se ejecuta un if (al momento de oprimir el boton de enviar del formulario) se ejecuta un if

if ((isset($_POST[\"MM_insert\"])) && ($_POST[\"MM_insert\"] == \"form1\")) {

bueno, antes de cerrar el if(pero ya despues de haber introducido los datos a la base de datos) cierra el bucle php. ejemplo:

<?php if($ejemplo==$ejemplo2 ){
Instruccion
instruccion
?>

<script type=\"text/javascript\">
<!--
window.location = \"Pagina1.php\"
/-->
</script>

(y ahora si cierras el if() de incercion)

<?php
}
?>

Asi resolvi mi problema. Cualquier duda a [email protected]

Suerte,

Saludos Cordiales

jmcastaneda
18 de Octubre del 2008
Intente con action=<?PHP $_POST[$editFormAction ]?>