2016-02-15 56 views
3

我们将创建一个服务表单,客户可以在其中输入详细信息,选择服务并支付现金。提交form2输入值取决于form1输入值的两种形式值

- >只有一种形式显示给用户 - >用户提供价格选择的服务,并填补了其他detail->提交的细节,所以数据的保存在 backend->保存数据后,窗口2需要工作自动,但 秒表格输入值取决于第一个表格输入值和 现金。

  1. 这是实现这一目标的最佳方式是什么?,两者形成在同一页面或不同的页面?

  2. 我可以为此使用ajax,以便客户需要保持在同一页面中?

我们的东东隐藏我们的商家ID,商家从检查元素

请给出例子秘密。 请参阅我的两种形式 表1

<form method="post" action="" name="form1" id="form1"> 
Your name<input type="text" name="cl_name"> 
Service < input type="checkbox" name="check-1" value="10"> Wash 
< input type="checkbox" name="check-2" value="10"> clean 

<input type="submit" name="submit" value="submit"> 
</form> 

形式-2

<form method="post" action="paymet_gateway_url" id="form2"> 
Name <input type="text" value="Form1 your name value" name="p_name" id="p_name"> 
Value<input type="text" value="Form1 service value (either 10 or 20)" name="p_cash" id="p_cash"> 
<inpu type="hidden" value="return url" name="p_r_url"> 
<input type="submit" name="submit" value="submit"> 
</form> 
+1

只有一个表单提交 - >在服务器上执行你的逻辑 - >根据状态在特定页面上重定向... – Rayon

+1

AJAX使用Javascript,它将允许用户留在同一页面上。 – caszi

+1

您能否请一个简单的基本示例来解决这个问题。这对我们真的很有帮助。谢谢你的快速回应。 – Evin

回答

1

您可以用不同的方式做到这一点...

  1. 您可以使用PHP Wraper隐藏您的商家ID

例如:

payment.php ---> wrper_payment.php ---> payment_gateway_url 
  • 您可以在顺序文件
  • 实施例使用AJAX:

    order.php ---> payment.php (which has the merchant id) ---> payment_gateway_url 
    

    亲爱的,Javascript和ajax并没有什么不同,但如果你想制作它非常安全,我建议你使用AngularJS,学习起来并不难,而且执行和实施起来也更快。

  • 可以使用操作变量在POST来定义一个以上支付
  • 例如:payment.php

    <?php 
    // For ajax use 
    
    $output = array('status'=>false,'error'=>''); //for JSON output 
    
    $switch($_POST['action']){ 
        case 'payment1': 
         //process payment1 
        break; 
        case 'payment2': 
         //process payment2 
        break; 
    } 
    
    //please dont forgot to set the header 
    header('Content-Type:application/json;)'; 
    echo json_encode($output); 
    

    例如:订购。PHP

    假设您正在使用jQuery的Ajax调用

    <Body> 
    .... 
    <button onclick="payment('payment1');"> Payment Option 1 </button> 
    <button onclick="payment('payment2');"> Payment Option 2 </button> 
    
    <Script type="text/javascript"> 
    function payment(option){ 
        $.post('payment.php',{action: option},function(data){ 
         //provide feedback to customer 
        }); 
    } 
    </script> 
    </body> 
    

    最后一两件事,做到使用PHP的包装,因为它会隐藏安全的所有凭证......

    祝您好运

    +1

    真的非常感谢Marmik。请问这个问题,请举一个非常简单的例子。只需一个领域的第一个表格和支付网关演示表格的处理[不需要付款门的方式表格,只是其他形式]。它一定会帮助我们。我会投票你的答案。但是目前我没有声望。 – Evin

    +0

    好的,我正在更新答案 –

    +1

    非常感谢。 – Evin

    0

    答案:

    (1)二合一
    页形式(2)当然,您可以使用Ajax
    (3)这是一个无关紧要的问题。由于JavaScript具有一个称为JQuery的特定库,并且Ajax是一种JQuery方法。

    下面介绍如何实现该功能。

    1. 您可以在一个PHP页面中创建2个表单,一个在另一个之下。表格-1(详细表格)是可见的,表格-2(付款表格)是不可见的。
    2. 用户将看到表单1,他们会把他们的细节。当他点击保存按钮时,一个JQuery事件处理程序会调用另一个在其中有Ajax调用的函数。
    3. ajax方法将使用serialize方法接收所有form-1的数据,但为此您需要将form-1的对象传递给该ajax调用。
    4. ajax方法会将这些数据发送到一个php文件,该文件可以将这些数据保存到状态为pending的数据库中。
    5. 在ajax调用成功之后,您将调用另一个函数,它将隐藏form-1并显示form-2。
    6. 当用户将输入表单2,然后从步骤2重复步骤5。
    7. 对form-2使用2nd ajax函数。第二次Ajax呼叫成功时,显示付款已完成的提醒。
    +2

    _Ajax是一个JQuery方法._什么是NONSENSE。 JavaScript确实有Ajax。 – Jai

    +1

    但是在这里检查表单将显示支付网关凭证详细信息,如商家ID,商家机密等。 – Evin

    +1

    我在谈论jquery api:http://api.jquery.com/jquery.ajax/ –