I'm attempting to use PHP code that finds zipcodes in a radius of another zipcode and create a custom snippet for formit. I've uploaded a table to the modx db with the zipcodes and lat/lon info (plus city and state). I have a file called "clsZipCodeRange.php" that does all the calculating in an includes folder.
This is my form:
<div class="panel">
<div class="panel-header"><h1>US Zipcode distance search</h1></div>
<div class="panel-content">
[[!FormIt?
&hooks=`zipsearch, successMessage`
&successMessage=`this was a success`
]]
<form action="[[~[[*id]]]]" method='POST'>
<label for='zipcode'>Enter the zipcode (US)</label> [[%zipsearch.zipcode]]
<input type='text' name='zipcode' id='zipcode' >
<div class="helptext">eg. 20007,20306</div>
<label for='radius'>Radius</label>
<select name='radius' id='radius' > [[%zipsearch.radius]]
<option value='5'>5 miles</option>
<option value='10'>10 miles</option>
<option value='15'>15 miles</option>
<option value='20'>20 miles</option>
<option value='25'>25 miles</option>
<option value='30'>30 miles</option>
<option value='35'>35 miles</option>
<option value='40'>40 miles</option>
</select>
<div id="actions">
<input class="button" type='submit' value='Search' class='clear'>
</div>
</form>
</div>
[[$zipresult]]
[[+fi.successMessage]]
</div>
This is my snippet "zipsearch"
$modx->getOption('site_url').'includes/clsZipCodeRange.php';
$modx->setPlaceholder('zipcode',$sSearchZipCode);
$modx->setPlaceholder('radius',$iRadius);
$sQuery = $modx->db->query('SELECT zipcode FROM `zipcodes`');
$objZipCodeRange = new ZipCodesRange($sSearchZipCode, $iRadius);
$myChunk = "zipresult";
if(isset($objZipCodeRange)){
$totalZipcodesFound = count($objZipCodeRange->zipCodes);
if($totalZipcodesFound > 0){
foreach ($objZipCodeRange->zipCodes as $ZipData){
$values = array($ZipData['ZIPCODE'], ',');
}
$output = $modx->parseChunk($zipresult, $values, '[+', '+]');
return $output;
}}
PHP is not really my thing so I could be way off. I'm trying to push my knowledge. I'm unable to get it to work. It just kicks to a blank screen.
[ed. note: crecorn last edited this post 11 years, 11 months ago.]