Red de conocimiento informático - Aprendizaje de programación - El precio del carrito de compras de ecshop no se puede actualizar al último precio a tiempo

El precio del carrito de compras de ecshop no se puede actualizar al último precio a tiempo

En realidad, existe una manera de resolver este problema. Puede echar un vistazo a la plantilla de página del carrito de compras de Template Hall, que básicamente ha implementado esta función.

A continuación se cita un tutorial

En la página del proceso de compra, modificar la cantidad de productos puede actualizar automáticamente los datos en el carrito de compras. Aunque existen algunos métodos en línea, la cantidad. El número de modificaciones del código es relativamente pequeño, es grande y no muy completo, como el cálculo de obsequios, etc., la reacción después de ingresar caracteres no numéricos en el cuadro de cantidad, etc.

Personalmente, no creo que sea necesario ser tan problemático. Demasiado código afectará la velocidad. Al utilizar directamente el botón original "Actualizar carrito de compras" y el juicio predeterminado del sistema con ligeras modificaciones, puede implementar la función de actualización automática de manera muy segura y sencilla.

La idea es reemplazar el botón de actualización del envío del formulario con un pequeño fragmento de código JS, agregar el JS anterior para el evento onblur desencadenado al perder el foco en el código del cuadro de entrada de cantidad de producto y modificar el página flow.php update_cart Simplemente ingrese para que regrese automáticamente a flow.php y no muestre la información modificada.

Tome la plantilla predeterminada de la versión 2.7.0 como ejemplo:

1. Haga una copia de seguridad y modifique el archivo flow.dwt en el directorio de la plantilla:

(1)? ¿Agregar un fragmento de JS entre para reemplazar el botón de actualización para el envío del formulario:

function?formSubmit()

{ document. getElementById("formCart").submit();

}

(2)? entre :

Se modificó para que el evento se active cuando el objeto pierda enfoque: onblur="formSubmit()"? como sigue:

(3)? Nuevamente busque el siguiente código:

Al eliminar este código se eliminará el botón "Actualizar carrito".

Si desea conservar el botón, asegúrese de cambiar el nombre="enviar" en enviar a otra cosa; de lo contrario, se informará un error de "enviar? ¿no? es? una? función" en Firebug. De lo contrario, se informará en Firebug un error "enviar? ¿no? es? una? función". La razón es que si hay un elemento name="submit" en

, al usar document.getElementById ("formCart").submit() para enviar el formulario, el elemento se confundirá con el método submit() y provocar un error.

2. Haga una copia de seguridad y modifique el archivo flow.php en el directorio raíz:

Busque el siguiente código:

elseif?($_REQUEST['step] ']? ==? 'update_cart')

Poner ?show_message($_LANG['update_cart_notice'],? $_LANG['back_to_cart'],?'flow.php');

Comente toda la línea,

Agregue una línea de código:?ecs_header("Location:?flow.php\n");

Se usa para regresar automáticamente a la página detallada al actualizar el carrito de compras, por ejemplo:

elseif?($_REQUEST['step']? ==? 'update_cart')

{

/*----- ---------- ---?*/

//-?Actualizar carrito de compras

/*-- ------ --- ------- ?*/

if?(isset($_POST['número_mercancías'])? &&?is_array($_POST['número_mercancías' ]))

{

flow_update_cart($_POST['goods_number']);

}

ecs_header( "Ubicación:? flow.php\n");

//?show_message($_LANG['update_cart_notice'],? $_LANG['back_too_cart'],? 'flow.php');

salir;

}

Muy bien, gran trabajo.