在PHP中使用AJAX POST值

时间:2015-11-13 15:49:57

标签: php ajax

我正在尝试评估要显示的PHP信息,具体取决于用户何时从列表中选择该项目。经过帮助和一些研究,我听说过很多关于AJAX的事情并且已经调查过了,但是,我对它的使用感到有点困惑。

我有一个AJAX函数从外部PHP文件返回给我一个变量值,它正如预期的那样工作。但是,我真的想捕获它并将其设置为PHP变量以继续我的脚本执行。如何实现这一目标?我想保持与调用AJAX函数的文件相同的文件。我不认为我完全理解它是如何工作的,我仍然不确定在我当前的PHP文件中将该值作为变量的确切方法。

我的AJAX:

[root@jr-sandbox python_scripts]# cat logfile.txt
afc69261af7ca0700185e4d9085e7181 , /root/python_scripts/testfiles/yum_save_tx-2015-11-11-16-57y4XwNP.yumtx
0662322d5529501d09c4cce1371d2db3 , /root/python_scripts/testfiles/yum_save_tx-2015-11-12-13-438AWQ5C.yumtx
55c04f8add81c667128398cb2f6d258d , /root/python_scripts/testfiles/yum_save_tx-2015-11-12-11-26gCDt0O.yumtx
1f7c612e4a00c53bb8ee7a1f0917aaad , /root/python_scripts/testfiles/yum_save_tx-2015-10-28-16-149rr0Ad.yumtx
690e3ccf94b75e9960ee3bd2a1f23bce , /root/python_scripts/testfiles/yum_save_tx-2015-03-16-13-42SAoXeV.yumtx

我的PHP外部文件:

function captureName(item){
        $.ajax({
            type: 'POST',
            url: 'externalFile.php',
            data: { item: item },
            success: function(data) {
            alert(data);
            }
        });
    }                           

东西我想设置我当前的PHP文件,由AJAX返回的内容确定:

  $item = $_POST['item'];
   echo $item;

2 个答案:

答案 0 :(得分:2)

你可以一拍即可。

你的javascript:

<string name="game_settings_dragNDropMove_checkBox"><![CDATA[Move by Drag&Drop]]></string>

你的PHP:

function captureName(item){
    console.log(item);
    $.post('externalFile.php', {item:item}, function(jsonTabInfo){
        console.log(jsonTabInfo);
    }, 'json');        
}

在PHP中,您使用JSON将所有信息发送到您的客户端(javascript)。这些信息新存储在$item = $_POST['item']; $tabInfo = array(); switch ($item){ case "item1": $tabInfo['itemName'] = "item1"; $tabInfo['location'] = "location"; $tabInfo['HWType'] = "HW Type"; break; case "item2": $tabInfo['vmName'] = "item2"; $tabInfo['location'] = "location2"; $tabInfo['HWType'] = "HW Type2"; break; default: $tabInfo['vmName'] = "Unknown"; $tabInfo['location'] = "Unknown"; $tabInfo['HWType'] = "Unknown"; } echo json_encode($tabInfo);

答案 1 :(得分:1)

尝试使用fiddler查看实际通过AJAX发送的数据。 Telerik Fiddler

如果它返回空括号,则表示在交换机中没有触发任何情况,因此将数据分配给$ tabInfo数组。下面我添加了一个默认案例,可能有助于识别问题。

switch($item) {
    case "item1":
         $tabInfo['itemName'] = "item1";
         $tabInfo['location'] = "location";
         $tabInfo['HWType']   = "HW Type";
         break;
    case "item2":
         $tabInfo['itemName'] = "item2";
         $tabInfo['location'] = "location2";
         $tabInfo['HWType']   = "HW Type 2";
         break;
    default:
         $tabInfo['itemName'] = "Undefined - " . $item;
         $tabInfo['location'] = "Undefined";
         $tabInfo['HWType']   = "Undefined";
         break;
}