Foros del Web » Programando para Internet » PHP »

Enviar formulario al servidor, no funciona.

Estas en el tema de Enviar formulario al servidor, no funciona. en el foro de PHP en Foros del Web. Hola. Estoy intentando hacer un envío al servidor, para modificar un campo de una tabla en la base de datos de mi web en wordpress(con ...
  #1 (permalink)  
Antiguo 23/10/2015, 16:30
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Enviar formulario al servidor, no funciona.

Hola.

Estoy intentando hacer un envío al servidor, para modificar un campo de una tabla en la base de datos de mi web en wordpress(con un formulario creado manualmente), pero no hace absolutamente nada.

Os pongo código de prueba:

<form action="update.php" method="post">

<input type="text" name="valor1">
<input type="text" name="valor2">
*
*
<input type="Submit" value="Guardar" name='enviar'>
</form>

El update.php consta de:

if (isset($_POST['enviar']))
{
$valor1=$_POST['valor1'];
$valor2=$_POST['valor2'];
global $wpdb;

$wpdb->update('nombre tabla' ('campo' => $valor1,'campo2' => $valor2), array('id' => 1));
}

¿Sabéis que hago mal? No hace nada, ni siquiera funciona el update. Ya no se ni como poner el update, hasta dudo que este bien.

¿Podéis aconsejarme?

Un saludo, y gracias de antemano.
  #2 (permalink)  
Antiguo 23/10/2015, 16:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar formulario al servidor, no funciona.

Cita:
¿Sabéis que hago mal? No hace nada, ni siquiera funciona el update. Ya no se ni como poner el update, hasta dudo que este bien.
Pues decir "no hace nada" no nos sirve para entender.

¿Por qué no mejor revisas el log de errores en busca de algo más útil?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/10/2015, 17:01
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Enviar formulario al servidor, no funciona.

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues decir "no hace nada" no nos sirve para entender.

¿Por qué no mejor revisas el log de errores en busca de algo más útil?

En el log de errores no sale nada.
A ver, al pulsar el botón la página se recarga pero no pasa nada, es decir:
  • La tabla no se actualiza, ya que la información no se envía.
  • Los elementos y mensajes de envío no se muestran.

Lo que ocurre es que no hace nada el action, recarga la página pero no usa el archivo update.php

No se si ya me he explicado mejor.

Un saludo.
  #4 (permalink)  
Antiguo 23/10/2015, 17:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar formulario al servidor, no funciona.

Pues no, eso tampoco ayuda.

Yo creo que tu script ni siquiera "compila" porque parece ser que tienes errores graves de sintaxis.

¿Por qué no pasas el código por un validador de código PHP para descartar problemas de sintaxis antes de continuar?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/10/2015, 19:58
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Enviar formulario al servidor, no funciona.

Todo esto tambien dependera en donde este ubicado update.php

Pero hay que leer bien la documentacion de los sistemas que se usan.

La sintaxis de update seria
Cita:
$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
Comprueba tu codigo y veras como te faltan cosas por poner como ya te han dicho.

Tienes la opcion de hacerlo con php directamente tambien si esto no te funciona, creas una conexion a la base de datos manualmente y actualizas los datos con puro php
__________________
http://www.roglastudios.es

Última edición por Dalam; 23/10/2015 a las 20:14
  #6 (permalink)  
Antiguo 24/10/2015, 08:06
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Problemas con Ajax

Muchas gracias, conseguí arreglar el inconveniente.

Pero ahora me ha surgido otro problema. Estoy usando ajax para enviar el formulario sin recargar la página.

Por ahora estoy usando algo sencillo antes de meter todas las variables y datos del formulario. Os adjunto el código y os explico:

La cosa es, que el ajax siempre me devuelve la función error y no entiendo porque. ¿qué hago mal?
  • -datos.php existe en la carpeta del servidor.
  • -esta la librería de jquery
  • datos.php contiene el código de los valores del formulario y de insertado a la bd, pero ese código por separado funciona correctamente. El problema radica en que ajax no llega al archivo.

Un saludo.

Cita:

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript">

function enviar()
{
$.ajax({
type: "post",
url: "datos.php",
data: $("#formu").serialize(),
success:function(data){$('#mostrardatos').html(dat a);},
error: function(){$("#mostrardatos2").html("error")}
});
}
</script>
<form id='formu'>
<h1>Envio de datos</h1>
<input type="text" name="valor1">
<input type="text" name="valor2">
<input type="text" name="valor3">
<br>
<input type='button' value="enviar" onclick="enviar()">
</form>

<div id="mostrardatos"></div>
<div id="mostrardatos2"></div>
  #7 (permalink)  
Antiguo 24/10/2015, 09:30
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Enviar formulario al servidor, no funciona.

Saludo
El formulario que se visualiza, está en la misma carpeta que datos.php?
La llamada de ajax espera que así sea, así que eso es lo primero a revisar.

Sí están al mismo nivel, entonces revisa en el navegador el resultado
del request hacía esa url desde el ajax,
y sí te da error, copía aquí el error completo para revisar.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #8 (permalink)  
Antiguo 24/10/2015, 10:09
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Enviar formulario al servidor, no funciona.

Gracias por responder.

El archivo datos.php y el del formulario esta en la misma carpeta.
En la consola del navegador sale este error:

POST http://localhost/web/mi-cuenta/datos.php 404 (Not Found)
XHR finished loading: POST "http://localhost/web/mi-cuenta/datos.php"
.k.cors.a.crossDomain.send @ jquery-2.1.4.min.js:4
n.extend.ajax @ jquery-2.1.4.min.js:4
enviar @ (index):684
onclick @ (index):700


Un saludo.
  #9 (permalink)  
Antiguo 24/10/2015, 10:49
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Enviar formulario al servidor, no funciona.

Saludo
De nada.

En cuanto a lo que copiaste.

POST http://localhost/web/mi-cuenta/datos.php 404 (Not Found)

Pues ahí está el detalle, dijo Cantinflas.
No encuentra el archivo datos en esa ruta.

Dijiste que el archivo del formulario está en la misma ruta,
en cuyo caso sí entras a
http://localhost/web/mi-cuenta/formulario.html
Funciona?
O cual url estás ocupando para ingresar al formulario?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #10 (permalink)  
Antiguo 24/10/2015, 11:59
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Enviar formulario al servidor, no funciona.

No entiendo porque dice que no lo encuentra, si esta en la misma carpeta.

el formulario se encuentra en http://localhost/web/mi-cuenta. En la página mi-cuenta le tengo un include(); donde esta el archivo del formulario.php, donde quiero que aparezca.

En dicha carpeta esta el formulario.php y datos.php

La carpeta queda así

- Carpeta myaccount:
----Dentro:
my-account (dentro esta escrito el include('formulario.php')
datos.php
formulario.php

Un saludo.
  #11 (permalink)  
Antiguo 24/10/2015, 12:48
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Enviar formulario al servidor, no funciona.

Cita:
Iniciado por luism25 Ver Mensaje
No entiendo porque dice que no lo encuentra, si esta en la misma carpeta.

el formulario se encuentra en http://localhost/web/mi-cuenta. En la página mi-cuenta le tengo un include(); donde esta el archivo del formulario.php, donde quiero que aparezca.

En dicha carpeta esta el formulario.php y datos.php

La carpeta queda así

- Carpeta myaccount:
----Dentro:
my-account (dentro esta escrito el include('formulario.php')
datos.php
formulario.php

Un saludo.
Saludo.
Uhm, a ver.
Tenemos que la url es http://localhost/web/mi-cuenta
Y la estructura de carpetas, así:
myaccount (Carpeta)
- my-account (que debe ser algún archivo de alguna extensión)
- datos.php
- formulario.php

Imagino que mi-cuenta es un alias, o tal vez la url es
http://localhost/web/myaccount ?

Por otro lado, intenta en el llamado al archivo datos alguna
de estas dos opciones:

Código Javascript:
Ver original
  1. url: "/datos.php"
  2. o
  3. url: "http://localhost/web/myaccount/datos.php"
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #12 (permalink)  
Antiguo 24/10/2015, 13:26
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Enviar formulario al servidor, no funciona.

Cita:
myaccount (Carpeta)
- my-account (que debe ser algún archivo de alguna extensión)
- datos.php
- formulario.php

Imagino que mi-cuenta es un alias, o tal vez la url es
http://localhost/web/myaccount ?
A ver, yo estoy trabajando en local con una clonación de la web original en wordress, estoy modificando el perfil de usuarios para añadir un formulario. El archivo donde se visualiza dicho perfil es my-account.php. Que esta en:

C:\xampp\htdocs\web\wp-content\themes\123ecology\woocommerce\myaccount

Por el plugins de traducción el link de la zona es http://localhost/web/mi-cuenta, en vez de http://localhost/web/my-account.

Lo que comentas de poner la url de esa forma, lo he hecho y nada. De ambas formas da el error.

También si pongo la url en el navegador: http://localhost/web/mi-cuenta/datos.php. Sale:

Home → 404 Error (en condiciones normales, las "migas de pan señalan a Home → Mi cuenta)

Nothing Found
Sorry, no posts matched your criteria.


-------------

Una cosa, en teoría el código esta bien,no?Debería hacer lo que quiero,si encontrase el fichero,no?.

Y otra pregunta, ¿Conoces de alguna otra forma de tratar un formulario en wordpress(como lo quiero hacer, sin plugins).


Un saludo, y muchas gracias por todo el interés
  #13 (permalink)  
Antiguo 24/10/2015, 13:43
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Enviar formulario al servidor, no funciona.

Saludo

Pues revisando el código, sí hay algo que cambiar.

Código Javascript:
Ver original
  1. success:function(data){$('#mostrardatos').html(dat  a);},
  2. por (hay un espacio entre la t y la a)
  3. success:function(data){$('#mostrardatos').html(data);},

Sí con eso no se arregla, entonces tal vez
podría ubicarse a datos en woocomerce o incluso en wp-content
a ver sí por reglas él va a la raíz.

Otra manera?
Pues sí no funciona de ese modo, podría hacerse un botón, link, etc,
que redireccione a una ubicación distinta para gestionar el formulario,
y cuando termine, que redireccione al sitio wordpress como tal.

Espero sirvan las ideas.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #14 (permalink)  
Antiguo 24/10/2015, 15:04
 
Fecha de Ingreso: mayo-2013
Mensajes: 17
Antigüedad: 11 años
Puntos: 1
Respuesta: Enviar formulario al servidor, no funciona.

Lo puse en la raíz y nada :(. Sobre el error que mencionas, ha debido ser al copiarlo aquí, en el archivo esta bien.

Lo último lo probaré, a ver si acaso.

Muchas gracias por todo.

Un saludo.
  #15 (permalink)  
Antiguo 22/11/2015, 23:55
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Enviar formulario al servidor, no funciona.

Perdona por la tardanza en responder, pero te dire lo mas seguro que te sucede.
A no ser de que en tu htacces obligues a que sea redireccionado todo el trafico por tu index.php, el core de wordpress no cargara, con lo que no tendras acceso a las funciones de wordpress ni de la base de datos. Por este motivo te dije que dependia de donde se encontrara tu script y del modo de cargarlo.
Dicho de otro modo es cargar tu script como si fuera solo puro php sin cargar librerias ni nada de wordpress.
__________________
http://www.roglastudios.es

Etiquetas: formulario, servidor, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:56.