0

我正在尝试使用 AJAX 将 jQuery 变量传递给 PHP,但它似乎没有传递。出于测试目的,我有以下内容:

查询:

            var runin_pickup = 1200;

            // Send to our checkRuninTariff function
            checkRuninTariff(runin_pickup);

`

function checkRuninTariff(runin_pickup) {

$.ajax({

         // Request sent from control panel, so send to cp.request.php (which is the handler)
        url: 'scripts/php/bootstrp/all.request.php',
        type: 'POST',

        // Build data array - look at the '$_REQUEST' parameters in the 'insert' function
        data: 'fnme=runIn&field_runin_p='+runin_pickup,
        dataType: 'text',
        timeout: 20000,
        error: function(){
                alert("There was a problem...")
        },
        success: function(){
                alert(runin_pickup+' passed successfully')
        }
    });

}

这被传递给 all.request.php:

<?php

include('../../../deployment.php');
require_once('controllers/xml.controller.php');
require_once('controllers/tariff.fare.controller.php');
require_once('controllers/datagrid.controller.php');
require_once('controllers/get.bookings.php');


// Switch to determine method to call
switch ($_REQUEST['fnme']) {

case 'runIn':
header('Content-type: text/html');
echo TariffFareController::getFare($_REQUEST['field_runin_p']);
break;

case 'g_fare':

header('Content-type: text/html');

echo TariffFareController::fareRequestHandler($_REQUEST['v_sys'],$_REQUEST['j_dis'],$_REQUEST['pc_arr'],
    $_REQUEST['leg_arr'],$_REQUEST['return_j'],$_REQUEST['j_date'],$_REQUEST['j_time'],
    $_REQUEST['r_date'],$_REQUEST['r_time'],$_REQUEST['wait_return_j']);

break;
}

最后是关税.fare.controller.php:

public static function getFare($int_terminate,$fieldPickup) {

        if($fieldPickup > 1100) {

            $fare = 222.00;
        }
        else {
        $fare = 111.00;
        }

}

在萤火虫控制台中,我可以看到field_runin_p = 1200

但是,如果我执行 var_dump($fieldPickup); 当它应该是 NULL 时,它是 NULL 1200。任何想法为什么这不起作用?

任何帮助将非常感激!

4

2 回答 2

1

您的函数需要两个参数:

getFare($int_terminate, $fieldPickup)

但是,您的代码仅通过一个(并且它与您期望的 var 不匹配):

echo TariffFareController::getFare($_REQUEST['field_runin_p']);

于 2013-03-13T16:42:08.443 回答
0

您正在尝试从您的 PHP 发送 html -header('Content-type: text/html');但您告诉您的 javascript 期待纯文本 -dataType: 'text',

改为使用header('Content-type: text/plain');

其他海报指出了您的脚本的其他问题。

我还建议不要使用$_REQUEST您的数据,因为您的数据可能来自 GET 或 POST 参数,而您不知道是哪个。

于 2013-03-13T16:47:55.740 回答