Boton agregar al pedido

Hola:

Puse este mismo tema en la parte de formularios y me han dicho que pregunte en PHP. Espero podais responderme.

Quiero hacer este formulario (fijaros el link). Hice todo copiandolo claro, pero no me funciona el boton agregar a la lista. Alguien sabe como se hace un boton así o el clasico formulario que tiene el boton "agregar al carrito" Saludos y gracias.

http://www.bisans.com.ar/pagPedidos.html
Lo que tun tienes realizado me gusta bastante, no te lo añade a la lista, te lo coloca en lineas aparte (yo lo editaria para que no se pudieran modificar esas lineas con el teclado).

El formulario que has realizado viene muy bien par agregar lo que uno quiere comprar, te lo envia a ti por email (sin saberlo) y tu le respondes y acuerdas con el como pagar.
No obstante no se a que te refieres con que no funciona el boton....funcionar funciona.

Un saludo.
El link que yo pongo es el que quiero hacer. No el que hice. Por eso es lo que pongo que no me funciona el boton agregar a la lista cuando copio todo y lo pego en mi html.

Este es el formulario que yo tengo que esta todo copiado del anterior link que hice. Y si te fijas no me funciona ese boton.

http://www.numanciamotor.com/a/formulario.html
Para no cagar lo que llevas avanzado COPIA tal cual el codigo fuente de la pagina que quieres, y sustituye los archivos .js y .css por la ruta a los tuyos, ya que veo que hay cosas que tu no tienes igual (seguro que hay mas que se te han pasado), por ejemplo:

<body class="centro" onload="cargar_variables()">

Y una vez que lo tengas tal cual la otra pagina, vas quitando las cosas que no te interesen.

Cualquier cosa aqui estamos, un saludo.
Gracias,ya probare lo que tu me dices. Es verdad que me falta eso de body. Habra más preguntas seguramente porque recien estamos hablando del html, luego falta ver lo del php.

Saludos y otra vez gracias.
Bueno, ya logre que cargue los productos. Ahora hice el php y cuando me envia el mail lo envia con todos los datos menos el pedido que hace la persona. Que tengo mal ahora??????????
Acuerdense que el formulario estaba en www.numanciamotor.com/a/formulario.html

Esta linea si te fijas que esta en el html tiene el id vacio. Por? al tener el id vacio me surge el problema como la relaciono en el php.
<td colspan="2" align="left" name="lista_productos_pedidos", id="">&nbsp;</td>

este es el php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<link rel="stylesheet" href="estilo.css" type="text/css" media="all">
<title></title>
<script type="text/javascript">
<!--
function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
} }
//-->
</script>
</head>
<body>
<div id="menu"><!--URL utilizadas en la película-->
<a href="pedido.html"></a>
<a href="contacto.html"></a>
<!--Texto utilizado en la película-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.c…" width="600" height="130" id="menu" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="menu.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="menu.swf" quality="high" bgcolor="#ffffff" width="600" height="130" name="menu" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></div>
<div id="cuerpo">
<?php
$sendTo = "arigrodriguez....";
$subject = "Pedido";

$nombre = $_POST["Nombre"];
$mail = $_POST["mail"];
$direccion = $_POST["direccion"];
$provincia = $_POST["provincia"];
$ciudad = $_POST["ciudad"];
$zip = $_POST["zip"];
$prod = $_POST["Lista_Productos_pedidos"];


$headers .= "From:" . $mail;

$message = "El pedido lo hizo: " . $nombre .
"\nMail: " . $mail .
"\nDirección: " . $direccion .
"\nProvincia: " . $provincia .
"\nCiudad: " . $ciudad . ", C.P.:" . $zip .
"\n\nPedidos:" . $prod ;
mail($sendTo, $subject, $message, $headers);
?>
<p>Su mensaje ha sido enviado correctamente</p>
</div>
</body>
</html>
A lo que tu dices que le falta el id, ponselo con este nombre: lista_productos_pedidos

y en esta linea:
$prod = $_POST["Lista_Productos_pedidos"];

Modificala por esta:
$prod = $_POST["lista_productos_pedidos"];

Aunque parezca una tonteria, no es lo mismo 1 linea que la otra por las mayusculas, creo que con eso ya estara todo solucionado; si no es asi, preguntanos.
Hecho, pero sigue sin funcionar. Seguire probando y probando hasta que salga. Lo que hice fue tratar de ver en la pagina de bisans el documento php al que te envia pero no he podido porque enseguida te redirecciona a otra pagina.
usar var_dump($_POST) al principio del documento para saber QUE llevas cuando se hace click en el boton enviar, eso ayuda bastante.
Donde debo poner esa linea?. Probe poner todas las id posibles que existen en los archivos js. y no funciona. yo creo que habra que poner alguna linea mas que no sabemos (al menos yo). creo que esta vez el formulario me ha ganado. El lunes empezare a aprender joomla y comenzaran las preguntas sobre ese programa. Ya me descargué el xamp y mirare el tutorial que me pasaste para configurarlo. Lo que hice fue enviarle un mail a bisans (sitio donde estaba el formulario que copie) para ver si me pasan el lenguaje php utilizado, dudo que me respondan pero habia que intentarlo.

Gracias Victor por todo y buen fin de semana.
No te vengas abajo, de verdad....dices que te envia el email y todo....estas a punto, confia en mi....si colocas esto al principio del documento PHP (despues de <?php ) var_dump($_POST);

Con eso sabras exactamente que lleva cada cosa, su valor y sobre todo su nombre; es ahi donde tendras que fijarte, y modificarlo despues para lograr que te envie por email tambien los productos.

Buen fin de semana y pregunta lo que necesites.

Un saludo.
Hola, qué tal? Soy quien armó el sitio bisans.com.ar hace como 4 años. El dueño del sitio me aviso que andabas preguntando sobre la implementación, busqué a ver si habías consultado en la web y como te encontré adjunto el .php a esta respuesta.

El código lo hice cuando arranqué a desarrollar sitios web así que no utilizaba buenas prácticas de programación, toma el ejemplo para sacar andando lo que necesitas pero no tomes como ejemplo el contexto (html embebido, etc :-)).

Espero que te sirva, cualquier cosa consultame.
Saludos!
Xavier
Mil gracias, ya lo probe y funciona. Ahora me voy a poner a cargar mis productos y espero que siga funcionando; asi que por ahi vienen más preguntas jajajaj. Saludos y otra vez gracias.
No es nada :-)

Una vez que lo tengas armado podrías subir acá el ejemplo completo de (HTML + JS + PHP) por si en algún momento actualizo Bisans y se pierde la referencia del primer post.
Saludos!

PD1: cómo terminaste en bisans.com.ar? tengo entendido que sos de España y muy cerca no andamos :-P.
PD2: Vos sos el que hace un tiempo hacía pruebas llamando al .php hacíendo que me consultaran por qué les llegaban mails vacíos? tengo que matarte.. jajaja
Saludos desde Argentina!
Xavier
Bueno, en realidad soy argentino viviendo en España, llegue a bisans e hice un pedido de una tela para una bandera Argentina que le regale a mi cuñada para que le ponga mi nombre ya que siempre que va a ver al Indio solari me llama al movil y me lo hace escuchar un poco diciendo que yo estoy ahi. De los mails vacios puede que tenga que hacerme cargo aunque nunca copie el php. Ahora sigo haciendo pruebas, espero que no lleguen mas mails, sino avisame. En los js no aparece nada de los mails no????. Saludos.

Gracias y espero poder yo ayudarte algun dia. Se un poco de flash jajajjaja.
Groso el indio :-D

No pasa nada, con los archivos que te descargaste y el .php que te pase podes hacer las pruebas que quieras.

El .js es para cargar el formulario nomás, no tiene relación alguna con el envío de mails.
El .php tiene tod o lo necesario para mandar el mail con el contenido del formulario, está todo ahí.

Ambos son independientes uno del otro.

El tema no era copiarlo sino ejecutarlo al poner la url en el navegador ya que la validación de campos la hacía en el .js nomás, el .php mandaba aunque estuviera vacío

Cualquier cosa te pregunto entonces :-).
Saludos y no es nada!
Bueno ya esta hecho el formulario, ahora queria saber para cuando me envian el mail en vez de que salga [correo eliminado] queria que me salga el mail de la persona que completo el formulario.

el php es este:

<?
// Autor: Xavier Perera
// Mail: [correo eliminado]
// Año: 2008

$idc = $_POST['idCliente'];
$nom = $_POST['Nombre'];
$ape = $_POST['Apellido'];
$emp = $_POST['Empresa'];
$dom = $_POST['Domicilio'];
$loc = $_POST['Localidad'];
$pro = $_POST['Provincia'];
$pai = $_POST['Pais'];
$tel = $_POST['Telefono'];
$fax = $_POST['Fax'];
$mai = $_POST['Mail'];
$zip = $_POST['zip'];

$productos = "";
foreach($_POST as $nombre => $valor){
$esta = strpos($nombre, "lista_prod");
if ($esta === FALSE){
}
else
{
$productos = $productos . $valor . "<br />";
}
}

$para = "arigrodriguez......"; //mail del receptor
$asunto = "Pedido: " . $nom;
$cabecera = "From: Pedido\r\nContent-type: text/html\r\n";


$com = convertir($_POST['Comentario']);



function convertir($val) {
$res = str_replace('
', '<br />', $val);
return $res;
}

$html = "
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Cachi Kleim</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
</head>
<body class='centro'>
<table width='770'border='0' align='center' cellspacing='0' class= 'centro'>
<tr>
<td class='tablaArr' colspan='3' ><h1 class='titulo'>&nbsp;</h1></td>
</tr>
<tr>
<td class='tablaBordeIzq'>&nbsp;</td>
<td align='center' class='texto'><div align='center'>
<table border='1' width='500px'>
<tr>
<td><table align='center'>
<tr>
<td>Nombre:</td>
<td><b>" . $nom . "</b></td>
</tr>
<tr>
<td>Domicilio:</td>
<td><b>" . $dom . "</b></td>
</tr>
<tr>
<td>Provincia:</td>
<td><b>" . $pro . "</b></td>
</tr>
<tr>
<td>Ciudad:</td>
<td><b>" . $loc . "</b></td>
</tr>
<tr>
<td>C. P.:</td>
<td><b>" . $zip . "</b></td>
</tr>
<tr>
<td>Mail:</td>
<td><b>" . $mai . "</b></td>
</tr>
</table></td>



<tr>
<td colspan='2'><table width='100%' align='center' border='1px'>
<tr>
<td align='center'>Productos</td>
</tr>
<tr>
<td><b>" . $productos . "</b></td>
</tr>
</table></td>
</tr>
<tr>
<td colspan='2'><table width='100%' align='center' border='1px'>
<tr>
<td align='center'>Comentario</td>
</tr>
<tr>
<td><b>" . $com . "</b></td>
</tr>
</table></td>
</tr>
</table>
</div></td>
<td class='tablaBordeDer'>&nbsp;</td>
</tr>
<tr >
<td class='tablaAba' colspan='3'></td>
</tr>
</table>



</body>
</html>";
mail($para, $asunto, $html, $cabecera);
header('Location: pedidohecho.html');
?>
Muy facil, sustituye aqui:

$para = "[correo eliminado]"; //mail del receptor

el email arigro.... por $mai

Un saludo
Sería muy bueno que juntaran los archivos de éste excelente formulario de pedido y dejarlo acá para quien seguramente será muy útil. Sería un estupendo aporte.
Victor si cambio la fila que me dices, (aun no lo probe) creo que cuando completen el formulario en vez de enviarseme a mi se enviara al mail de la persona que lo comleto. Es que tengo entendida que esa fila es la orden para que se me enive el mail.

Y cuando este el formulario ya bien prometo, si me permite el administrador crear un tema con este formulario poniendo todos los archivos.

Saludos.
Aqui es donde envia el email:

mail($para, $asunto, $html, $cabecera);

$para es tu email, para que te lleguen a ti.

$asunto "Pedido numero..."
$html el contenido
y $cabecera una cosa necesaria para que escriba bien el HTML

Realiza una prueba y asegurate que en el contenido del email que te llega aparece el email de tu cliente; si no es asi lo dices y te digo como añadirlo, aunque por el for que se realiza despues de extraer las variables, estoy seguro de que te lo añade.

Por lo demas, creo que esta todo bien.

Un saludo.