【问题标题】:Undefined variable in PHP after include包含后PHP中的未定义变量
【发布时间】:2017-01-22 20:28:57
【问题描述】:

我是 stackoverflow 的新手(至少作为成员),我有一个问题。 顺便说一句,我也是 PHP 新手。

事情是: 我想用基于第一个下拉列表的条目动态填充第二个下拉列表(我想根据所选省份显示城市)。 我设法通过 Javascript 中的 AJAX 调用将所选省份获取到外部 PHP 文件。 但是当我在我的原始 PHP 文件中包含外部 PHP 文件时,外部文件的变量是未定义的。 AJAX 调用由第一个下拉菜单上的 onchange 事件触发。

也许您还可以帮助我了解如何使用该变量在第二个下拉列表中获取正确的内容。我为此使用了多维数组。

HTML:

echo('<select name="provincie" id="provincie"       onchange="ProvinciePHP()">');


    foreach ($provincie as $provincies){
        echo ("<option> $provincies </option>");
    }
    echo ('</select>');


echo('<select name="stad" id="stad"> </select>')

PHP 数组:

$provincie = array(
    'Selecteer een provincie',
    'Drenthe',
    'Flevoland',
    'Friesland',
    'Gelderland',
    'Groningen',
    'Limburg',
    'Noord-Brabant',
    'Noord-Holland',
    'Overijssel',
    'Utrecht',
    'Zeeland',
    'Zuid-Holland',
);
$stad = array(
    'Drenthe'       => array("Assen", "Emmen", "Hoogeveen", "Meppel"),
    'Flevoland'     => array("Almere", "Biddinghuizen", "Dronten", "Lelystad"),
    'Friesland'     => array("Heerenveen", "Joure", "Leeuwarden", "Sneek"),
    'Gelderland'    => array("Apeldoorn", "Arnhem", "Nijmegen", "Zutphen"),
    'Groningen'     => array("Delfzijl", "Groningen", "Stadskanaal", "Veendam"),
    'Limburg'       => array("Maastricht", "Roermond", "Sittard", "Venlo"),
    'Noord-Brabant' => array("Breda", "Den Bosch", "Eindhoven", "Tilburg"),
    'Noord-Holland' => array("Alkmaar", "Amsterdam", "Haarlem", "Hilversum"),
    'Overijssel'    => array("Deventer", "Enschede", "Hengelo", "Zwolle"),
    'Utrecht'       => array("Amersfoort", "Breukelen", "Utrecht", "Zeist" ),
    'Zeeland'       => array("Goes", "Middelburg", "Terneuzen", "Vlissingen"),
    'Zuid-Holland'  => array("Alphen a/d Rijn", "Den-Haag", "Rotterdam", "Schiedam"),
);

【问题讨论】:

  • 好像少了很多代码,你得到一个php错误?如果是的话,包括它
  • 你说它在包含之后是未定义的,我会假设它在你不使用包含时有效,所以我猜问题是你没有包含相对 URL。
  • 您需要显示执行 AJAX 调用的 Javascript 以及它调用的脚本。
  • 大家好,我试过了,好像有什么问题......
  • @Bandouglas:不,因为当我在变量中连接字符串时,会显示字符串部分,但不会显示来自 AJAX 调用的数据。虽然成功返回 AJAX 是好的,但我在下面的代码中使用警报进行测试。我认为这与我必须以某种方式重新加载该变量有关,因为该变量在 onchange 事件发生之前已经加载。

标签: javascript php ajax include dropdown


【解决方案1】:
function getProvincie(){
var provincie = $('#provincie option:selected').val();

$.ajax({
    type: "POST",
    url: "getprovincie.php",
    data: {data: provincie},
    success: function(data) {
        alert(data);
        $('#stad').css('display','inline');
    },
    error: function(data) {

    }
});

}

//PHP page to where the AJAX call points:
<?php
$resultaat = $_POST['data'];

echo($resultaat);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2015-08-29
    • 2011-09-19
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多