在下面的问题中,我发现了一些与我想要实现的相似但非常不同的东西Hide and show a div when click on a radiobutton with javascript
我真的想避免仅仅通过 CSS 隐藏内容,而是通过PHPdisplay: none;
自动显示选定的信息。radio
switch
使用它只会调用所需的内容,而不是让所有内容都被 CSS 隐藏。
使用 PHP 生成以下 HTML 内容
<?php
$r =array(
1 => 'Transferencia Bancaria',
2 => 'PayPal',
3 => 'Tarjeta de credito',
);
foreach ($r as $key => $value) {
if(isset($_SESSION['datos_form']['radio']) && $_SESSION['datos_form']['radio'] == $key ) {
echo '<input name="radio" type="radio" id="'.$key.'" value="'.$key.'" checked="checked" >';
echo '<label for="'.$key.'" title="'.$value.'">'.$value.'</label>';
} else {
echo '<input name="radio" type="radio" id="'.$key.'" value="'.$key.'" >';
echo '<label for="'.$key.'" title="'.$value.'">'.$value.'</label>';
}
}
?>
并通过switch
PHP 自动根据所选半径调用模板。
如果信息从一个页面发送到另一个页面,则很容易检索该值,并将该值显示在
switch
. 但问题是所有这些信息都在同一个页面上,并且必须在不刷新页面的情况下执行所有操作。
switch (variable) {
case 'value':
# code... tarjeta de crédito o débito
include 'form_credit_card.php';
break;
case 'value':
# code... Pago con paypal
include 'payment_paypal.php';
break;
case 'value':
# code... transferencia bancaria
include 'wire_transfer.php';
break;
default:
# code...
echo "Hubo un error inesperado en la forma de pago seleccionada, vuelva intentarlo más tarde";
break;
}
在 jQuery 中,我做了类似的事情,但与我想要实现的目标相去甚远,我唯一能展示的就是label
选定的收音机。
function show_step(step){
var data = $( "#form" ).serialize();
var url = 'saveTemp.php?step=' + step;
// recuperamos el label del radio button seleccionado
var valor_radio = $('input:radio[name=radio]:checked').next("label").text();
$.ajax({
type: "POST",
url: url,
data: data
})
.done(function( resp ) {
// si todo va bien
// ocultamos los pasos
$('.step').css( "display", "none" );
// mostramos el paso correspondiente
$('#step'+step).fadeIn("slow");
// mostramos el radio button seleccionado
$('#div_producto').html(valor_radio);
animacion(step);
});
};
所以我的问题是:如何在同一页面上根据radio
所选模板的值自动调用支付模板?switch
注意:一些支付模板有 PHP 代码,例如 PayPal 支付表单模板,其表单中包含购买的价值,信用卡模板有使用 Stripe 支付网关的 javascript 代码。
您可以进行以下修改:
在使用
PHP
支付方式选项(eg: los radios
)生成的部分,为避免重复代码,您只能checked
在满足条件时添加属性。要检测
radio
selected 的变化并加载相应的内容,您可以这样做:最后,在文件
formaPago.php
(您应该创建的文件,名称可以是任何其他文件)中,只需要控制的值$_POST['idForma']
并返回相应的内容。文件内的代码formaPago.php
可能如下:第一部分,获取点击半径的值,将与您在问题中看到的相同。
获得值后,您现在可以通过 jquery load 事件加载 php 文件。
唯一的东西是
javascript
在客户端执行,所以如果文件PHP
有服务器代码,它不会被执行为此,您应该创建
div
一个id
名为capa