jQuery - 将变量传递给PHP

时间:2013-03-13 16:37:52

标签: php jquery ajax

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

JQUERY:

            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;
        }

}

在firebug控制台中,我可以看到field_runin_p = 1200

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

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

你的功能需要两个参数:

getFare($int_terminate, $fieldPickup)

但是,您的代码只传递一个(并且它与您期望的var不匹配):

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

答案 1 :(得分:0)

您正在尝试从您的PHP发送html - header('Content-type: text/html');但是您告诉您的javascript需要明文 - dataType: 'text',

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

其他海报指出了你的剧本的其他问题。

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