问题:
addToAuthorizeform()
; $amount
。此变量应显示由Ajax函数计算的value1
的输出。到目前为止我的代码:
//AJAX FUNCTION THAT OUTPUTS AN AMOUNT
//SEE LINE 24 value="'+arrData[1]+'" <-- This is the correct value that needs to be //output on PHP VARIABLE
<script>
function addToAuthorizeForm() {
$wbc('#slots_purchased').html('');
var new_html = '';
var i = 1;
$wbc('#booking_slots').find('input').each(function () {
if ($wbc(this).attr('checked')) {
var slot_id = $wbc(this).val();
//ajax request to get data
$wbc.ajax({
url: '<?php echo plugins_url('
my_plugin / public ');?>/ajax/getSlotInfo.php?slot_id=' + $wbc(this).val(),
success: function (data) {
arrData = data.split("$");
if (arrData[1] > 0) {
q = 1;
if ($wbc('#seats_' + slot_id).val() != undefined) {
q = $wbc('#seats_' + slot_id).val();
}
new_html += '<input type="hidden" name="x_amount_' + i + '" value="' + arrData[1] + '" />';
$wbc('#slots_purchased').html(new_html);
i++;
}
}
});
}
});
}
</script>
现在PHP变量
$amount = '';
现在我需要知道在$amount = 1
之后我应该放置什么代码,这样我就可以调用或回显在Javascript函数的第24行计算的Ajax相同值'+arrData[1]+'
。
以下是我用于提交的Authorize.net HTML表单。
<?php
require_once 'anet_php_sdk/AuthorizeNet.php'; // Include the SDK you downloaded in Step 2
$fname = $bookingReservationObj->getReservationName();
$api_login_id = $bookingSettingObj->getAuthorizeAPI();
$transaction_key = $bookingSettingObj->getAuthorizeTXN();
$amount = // I am not sure what to put here to call Ajax value that i need answer
$fp_timestamp = time();
$fp_sequence = "123" . time(); // Enter an invoice or other unique number.
$fingerprint = AuthorizeNetSIM_Form::getFingerprint($api_login_id,
$transaction_key, $amount, $fp_sequence, $fp_timestamp)
?>
<!-- authorize.net form -->
<form action='https://test.authorize.net/gateway/transact.dll' METHOD='POST' name="authorize_form" style="display:inline">
<!-- Authorize Configuration -->
<input type='hidden' name="x_login" value="<?php echo $api_login_id ?>" />
<input type='hidden' name="x_fp_hash" value="<?php echo $fingerprint?>" />
<input type='hidden' name="x_fp_timestamp" value="<?php echo $fp_timestamp?>" />
<input type='hidden' name="x_fp_sequence" value="<?php echo $fp_sequence?>" />
<input type='hidden' name="x_version" value="3.1">
<input type='hidden' name="x_show_form" value="payment_form">
<input type='hidden' name="x_test_request" value="true" />
<input type='hidden' name="x_method" value="cc">
<input type='hidden' name="x_first_name" value="<?php echo $fname ?>">
<input type='hidden' name="x_last_name" value="<?php echo $fname ?>">
<input type='hidden' name="x_email" value="<?php echo $fname ?>">
<input type='hidden' name="x_phone" value="<?php echo $fname ?>">
<input type='hidden' name="x_description" value="<?php echo 'Cruzz Booking '; ?>">
<!--slots purchased-->
<div id="slots_purchased">
</div>
<input type='hidden' name="x_receipt_link_method" value="link">
<input type='hidden' name="x_receipt_link_text" value="Click here to return to our home page">
<input type='hidden' name="x_receipt_link_URL" value="<?php echo site_url('')."/?p=".$post->ID."&authorize_confirm=1"; ?>">
<input type="hidden" name=" x_cancel_url" value="<?php echo site_url('')."/?p=".$post->ID; ?>">
<input type="hidden" name="rm" value="POST">
</form>
我该如何开始?
答案 0 :(得分:0)
在您的代码中$wbc
必须是您的jQuery对象,通常只是$
。如果由于某种原因$wbc
没有引用jQuery对象,则表示您遇到了问题。 ajax
是jQuery对象的一种方法。 ajax
方法将Object Literal作为其参数。 JavaScript Object Literal实际上是一个关联数组。 url
是您作为参数传入的Object的属性。该属性的值为'<?php echo plugins_url('my_plugin/public');?>/ajax/getSlotInfo.php?slot_id='+ $wbc(this).val()
,您必须通过服务器运行该属性,因此该文件必须是.php
文件。要使用plugins_url()
,您必须使用WordPress。
您使用的是$wbc.ajax({type:'GET'})
方法,因此可以发送'getSlotInfo.php?slot_id='+$wbc(this).val()+'&anotherProperty=anotherValue
之类的其他信息。所以&
分隔属性。
查看代码所在的位置getSlotInfo.php?slot_id=
?您slot_id
正在向$_GET['slot_id']
发送信息的页面上url
可以访问getSlotInfo.php
部分。您可以在<?php $varHere = $_GET['slot_id'] ?>
页面上使用getSlotInfo.php
来创建一个包含jQuery的PHP变量。
如果dataType: 'json'
方法对象参数中有ajax
,如$wbc.ajax({dataType: 'json'})
,则可以使用PHP生成JavaScript对象表示法,这是一个关联数组。在getSlotInfo.php
页面上为此选择的PHP方法将为json_encode()
。只要你使用PHP print
或echo json_encode()
,当你有一个成功的响应时,data
的{{1}}参数将包含关联数组,它可以与JavaScript一起使用在循环中像:
$wbc.ajax({success: function(data){}})
发送到此JavaScript Object Literal的for(var i in data){
var property = i;
var value = data[i];
}
上的PHP可能如下所示:
getSlotInfo.php
使用此方法,没有理由<?php
if(isset($_GET['slot_id']) && isset($_GET['anotherProperty'])){
$ary = array('prop1' => $_GET['slot_id'], 'prop2' => $_GET['anotherProperty']);
echo json_encode($ary);
}
else{
header('LOCATION: urlOfChoice.html');
}
?>
split
,因为它不是字符串响应。相反,它已经data
。
这可能有助于您了解JSON
方法Jquery AJAX post to PHP。