[support] PHP block code works fine on its own, not within drupal

Neil: esl-lounge.com neil at esl-lounge.com
Mon Mar 12 15:47:02 UTC 2007


I have put together this drop down code to drill down from country > state > town.

As a lone php page, it works fine, but when I put it in block on a drupal page, the countries load, but when I select, say, Canada, the page refreshes as it should but the United States is always there, not Canada.

Possibly it's a problem relating to the javascript, the self.location maybe. I'd appreciate any help with this one.
----------------------------------------------------------------------------------

<?
//connect to database//
include "connect.php";

//start session//
session_start();
//update session if country selection changed//
if(isset($_POST['countryList']))
{
if(isset($_POST['stateList']))
   $_SESSION['state_shc'] = $_POST['stateList'];
  $stateList = $_SESSION['state_shc'];
}

?>
<SCRIPT language=JavaScript>
function reload(form)
{
// Setting the variable with the value of selected country's ID
var val=populate.countryList.options[populate.countryList.options.selectedIndex].value;

// Sending the country id in the query string to retrieve the city list
self.location='index.php?countryId=' + val ;
}
</script>
<?

$query  = "SELECT country_shc, country_name FROM countries ORDER BY country_shc";
$result = mysql_query($query);
$country_shc = $_SESSION['country_shc'];
?>
<form name="form1" action="" method="post">
      <select onChange='form1.submit();' name='countryList'>
<?
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<option value='{$row['country_shc']}'";
   
    if ($countryId == $row['country_shc'])
   echo "selected";

    echo ">{$row['country_name']}</option>";
}

?>
</select>
</form>
<?
      $_SESSION['country_shc'] = $_POST['countryList'];
      $_SESSION['stateId'] = $_POST['stateList'];
      
      $query  = "SELECT state_shc, state_name FROM states WHERE country_shc = '$country_shc'";
      $result = mysql_query($query);
      ?>
      <form name="form2" action="" method="post">
      <select onChange='form2.submit();' name='stateList'>
      
      <?
      while($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
            echo "<option value='{$row['state_shc']}'";
         
            if ($stateId == $row['state_shc'])
              echo "selected";
         
            echo ">{$row['state_name']}</option>";

      }
      ?>
      </select>
      <input type="hidden" name="countryList" value="<?=$_SESSION['country_shc'];?>" />
      </form>
<?      
      $_SESSION['state_shc'] = $_POST['stateList'];
      $state_shc = $_SESSION['state_shc'];

      $_SESSION['cityId'] = $_POST['cityList'];
      $query  = "SELECT city_id, city_name FROM cities WHERE state_shc = '$state_shc'";
      $result = mysql_query($query);
      ?>
      <select name='cityList'>
      <?
      while($row = mysql_fetch_array($result, MYSQL_ASSOC))
      {
            echo "<option value='{$row['city_shc']}'";
         
            if ($cityId == $row['city_shc'])
              echo "selected";
         
            echo ">{$row['city_name']}</option>";
      
      }
?>
      </select>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.drupal.org/pipermail/support/attachments/20070312/85fc3d5a/attachment.htm 


More information about the support mailing list