如何加载显示通过AJAX发送的变量的表单?

时间:2017-11-06 15:33:19

标签: javascript php jquery html ajax

我想创建并加载一个带有脚本标签的表单,其中包含我使用AJAX发送的变量,并使用html()将此表单放在div中,所以我使用这样的对象标记。

$.ajax({
   type: "POST",
   url: "scripts/api.php",
   data:{
     uuid: '03249AAV',
     amount: '100.00',
     userID: '111111'
   },
   cache: false,
   success: function( data, textStatus, jQxhr ){
       $("#b4").html("<object type='text/html' data='scripts/api.php'></object>");
   },
   error: function( jqXhr, textStatus, errorThrown ){
        console.log( errorThrown );
   }
});

和我的php代码创建表单接收变量:

<?php
 $uuid = $_POST['uuid'];
 $amount = $_POST['amount'];
 $userID = $_POST['userID'];

 $numrandom = rand(111111,999999);

 $form="
   <form action=\"https://www.mywebsite.com/payment.php?sessionToken=$uuid\" method='post'>
<script src=\"https://static-content.vnforapps.com/v1/js/checkout.js?qa=true\"
    data-sessiontoken=\"$uuid\"
    data-merchantid=\"$userID\"
    data-buttonsize=\"\"
    data-buttoncolor=\"\" 
    data-merchantlogo =\"icon/logo.png\"
    data-merchantname=\"\"
    data-formbuttoncolor=\"#047AB7\"
    data-purchasenumber=\"$numrandom\"
    data-amount=\"$amount\"
/></script>
</form>";
echo $form;

我在div中获得了AJAX结果,但变量在结果中是空的,如下结果:

enter image description here

我也尝试在AJAX $("#b4").html(data)中使用,但表单不加载脚本标记,付费按钮不收费,看起来是空的,这就是我在开始时使用$("#b4").html("<object type='text/html' data='scripts/api.php'></object>");的原因。控制台不显示任何错误。

如何显示这些变量?

我想要一些帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

您当前的逻辑是通过POST发出AJAX请求,忽略响应,然后创建一个对象来调用相同的端点但是作为GET请求,因此不会检索任何变量。出于这个原因,object完全无用

要执行您想要的操作,只需使用返回success处理程序的HTML并将其附加到DOM:

success: function(data) {
  $("#b4").html(data);
},