提交两个表单,其中form2输入值取决于form1输入值

时间:2016-02-15 04:22:38

标签: javascript php jquery ajax payment-gateway

我们将创建一个服务表单,客户可以在其中输入详细信息,选择服务并支付现金。

  

- >只向用户显示一个表单 - >用户选择具有价格的服务并填写其他详细信息 - >提交详细信息,以便将数据保存在   backend->保存数据后,form2需要自动工作,但是   第二种形式的输入值取决于第一种形式的输入值和   现金。

  1. 这是实现此目的的最佳方式?,两个表单在同一页面或不同页面中?

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

  3. 我们需要隐藏我们的商家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>
    

2 个答案:

答案 0 :(得分:1)

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

  1. 您可以使用PHP Wraper来隐藏您的商家ID
  2. 例如:

        int num = 1234;
        int div = (int) Math.pow(10, (int)(Math.log10(num)));
        while(num > 0) {
            int rem = num / div;
            num = num % div;
            div /= 10;
            System.out.println("num : -> "+ rem);
        }
    
    1. 您可以在订单文件中使用ajax
    2. 例如:

      payment.php ---> wrper_payment.php ---> payment_gateway_url
      

      亲爱的,Javascript和ajax并没有什么不同,但是如果你想让它非常安全,我建议你使用AngularJS,它不难学,也不会更快地执行和实现。

      1. 您可以在POST中使用操作变量来定义多个付款
      2. 例如:payment.php

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

        例如:order.php

        假设您正在使用jQuery进行ajax调用

        <?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包装器,因为它会隐藏所有凭据以保证安全性......

        祝你好运

答案 1 :(得分:0)

答:

(1)一页中的两个表格
(2)当然你可以使用Ajax
(3)这是一个无关紧要的问题。因为JavaScript有一个特定的库,它被称为JQuery,而Ajax是一个JQuery方法。

以下是如何实施该功能的方法。

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