Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/10/2011, 03:37
jurassicboy
 
Fecha de Ingreso: agosto-2009
Mensajes: 91
Antigüedad: 15 años, 8 meses
Puntos: 2
Enviar form con campo hidden sin recargar página.

Buenos días,

El problema es que tengo dos botones para un mismo formulario, el cual realiza una función u otra dependiendo de si he hecho submit en "publica" (esto enviaría "mitxt" y además $_POST[form]== publica) o por el contrario tan solo he enviado "mitxt", en este caso $_POST[form]==mitxt). Como véis para cada caso, dependiendo del valor de $_POST[form] haría la función pertinente.

Dentro de guardar.php controlo si $_POST[form] == publica o bien si $_POST[form] == mitxt y para cada caso ejecuto una función distinta. Funciona perfectamente. ¿El problema? que la página se me recarga debido a que utilizo php y recojo el POST de esta manera:

editahoja.php
Código PHP:
<?php

if(isset($_POST['form'])){

include(
"guardar.php");

}

?>
He intentado resolverlo con Ajax pero me es imposible recibir los valores correctamente. O bien aparecen vacíos o bien la página pese al código ajax se recarga (en esta ocasión si lo hace bien, pero no evita que recargue la página igual que con php).


Código ajax que en teoría envía por POST sin recargar la página:
Código PHP:
<script language="javascript">
$(
document).ready(function() {

   
// Interceptamos el evento submit
    
$('#form, #fat, #formulario').submit(function() {
  
// Enviamos el formulario usando AJAX
        
$.ajax({
            
type'POST',
            
url: $(this).attr('action'),
            
data: $(this).serialize(),
            
// Mostramos un mensaje con la respuesta de PHP
            
success: function(data) {
                $(
'#result').html(data);
            }
        })        
        return 
false;
    });
})  
</script> 


formulario utilizado en editahoja.php:
Código PHP:
<form method="post" action="editahoja.php" id="formulario" name="formulario"><br />

            <
input type="hidden" value="mitxt" name="form"/>
            <
input type="submit" name="form" value="publica" onclick="alerta()">
            <
textarea id="mitxt" resize="none" name="mitxt"></textarea>
            
            <!-- 
Reemplazamos el textarea con el editor ckEditor-->
            
            <
script type="text/javascript">
            
CKEDITOR.replace'mitxt',
        {
            
toolbar 
            [
        [
'Source','-','Save','NewPage','Preview','-','Templates'],
        [
'Cut','Copy','Paste','PasteText','PasteFromWord','-','Print''SpellChecker''Scayt'],
        [
'Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
        [
'Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
        [
'NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
        [
'JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
        [
'Link','Unlink'],
        [
'Image','Table','HorizontalRule','SpecialChar','PageBreak'],
        
'/',
        [
'Styles','Format','Font','FontSize'],
        [
'TextColor','BGColor'],
        [
'Maximize''ShowBlocks']
    ],
    
    
/* Buscador de archivos */
    
filebrowserBrowseUrl '/PRUEBAS/ckfinder/ckfinder.html',
    
filebrowserImageBrowseUrl '/PRUEBAS/ckfinder/ckfinder.html?type=Images',
    
filebrowserFlashBrowseUrl '/PRUEBAS/ckfinder/ckfinder.html?type=Flash',
    
filebrowserUploadUrl '/PRUEBAS/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
    
filebrowserImageUploadUrl '/PRUEBAS/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
    
filebrowserFlashUploadUrl '/PRUEBAS/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',
    <!-- 
Codigo para añadir el administrador de ficheros que nos permite subir imágenes al servidor -->
            <!--
filebrowserBrowseUrl '/PRUEBAS/plugins/filemanager/index.php',-->
            
uiColor '#9AB8F3'
            
    
        
});
        
            
</script>
</div>
    </form><div id="result"></div> 
Espero haberme explicado, si tienen alguna duda no duden en preguntar. cualquier ayuda o aportación es bien recibida. Muchas gracias de antemano!!

Última edición por jurassicboy; 24/10/2011 a las 03:57