Pregunta sobre PHP ..!

Hola que tal como estas ...
Soy el encargado de este sitio web www.radiofayl.com y tengo instalado un panel que funciona para los locutores que es donde las personas que escuchan pueden pedir sus canciones.
Si entras al sitio web, vas a encontrar del lado derecho un formulario que se llama "PIDE TUS CANCIONES", ok el problema es que cuando presionas el botón de "ENVIAR" el resultado que da lo abre en otra página y no en la misma página .
El resultado que da es de "su petición fue enviada", pero no lo abre ahí en el mismo lugar, ¿me podrías decir que tengo que hacer para que lo abra en el mismo lugar?
Gracias!

1 Respuesta

Respuesta
1
En cuanto a tu duda, te comento que:
En un formulario, al momento de hacer un "submit" redireccionará automáticamente a la página que esté definida en el action del formulario, así que hay dos maneras de hacer lo que quieres, la sencilla y la "no difícil, pero más complicada"
La primera consiste en copiar todo el código de "cabina/request.php" a tu página principal, y cambiar el action de tu formulario igual, a la página principal. Solo que tendrías que quitar la impresión de un nuevo formulario que tienes en cabina/request.php, entonces, cuando le des enviar, procesaría la petición en la misma página y la recargaría
La otra solución, más "cool" y cercano a lo que quieres, es usar AJAX, no es tan difícil, tendrías que cambiar el submit del formulario por un botón común y corriente, para que puedas usar javascript sobre el, y lo que harías es lo siguiente:
Agregar en la página principal:
<head>
<script type="text/javascript" src="ajax_peticion.js"></script>
<script type="text/javascript">
fuction enviar(){
agregaprod(document.getElementById('nombre').value,document.getElementById('tipo').value,document.getElementById('mensaje').value);
}
</script>
</head>
y tu formulario quedaría así:
<div id="peticiones"><form>
<b>Nombre:</b><br>
<input type="text" name="name" id="nombre">
<p>
<b>Tipo:</b><br>
<select name="type" id="tipo">
<option selected>Cancion</option>
<option>Saludo</option>
<option>Queja</option>
<option>Chiste</option>
<option>Otro</option>
</select>
<p>
<b>Mensaje:</b><br>
<textarea cols='20' rows='7' name='request' id="mensaje"></textarea>
<p>
<input type='button' name='submit' id="enviar" value='Enviar' onclick="enviar();">
</form></div>
Y tienes que hacer un archivo llamado ajax_peticion.js en el mismo directorio, o uno diferente, solo recuerda cambiar la dirección en el archivo de tu página principal, en este archivo ajax_peticion.js tendrás que tener lo siguiente:
var xmlhttp
function agregaprod(nom,tipo,msj)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Tu navegador no soporta AJAX!");
  return;
  }
var url="cabina/request.php";
url=url+"?nombre="+nom;
url=url+"&tipo="+tipo;
url=url+"&msj="+msj;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
if (xmlhttp.readyState==4)
  {
  document.getElementById("peticion").innerHTML=xmlhttp.responseText;
  }
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}
Y por último, en tu archivo cabina/request.php solo tienes que cambiar los $_POST[] que tengas por:
$_GET['nombre'], $_GET['tipo'] y $_GET['mensaje']
Y esto debería imprimir lo de abina/request.php dentro del div llamado petición, que es donde está tu formulario en la página principal.
Espero que no te haya confundido mucho, y espero que te sirva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas