古いサイトでフォーム送信を使用しています。SEO の目的で、これを onClick() 関数に変更して、きれいな URL に移動するようにしましたが、この関数を使用すると、他のフォーム値が php ファイルに取得されません。
以下は私の古いコードです
<form name="frmSearchTops" id="frmSearchTops" action="/womens/tops/" method="post">
<select name="cboCityNameRes" id="cboCityNameRes">
<option value=''>City</option>
{foreach from= $arritemCities item=foo}
{if $smarty.post.hdnCityName eq $foo}
<option value="{$foo}" selected="selected">{$foo}</option>
{else}
<option value="{$foo}" {if $foo eq 'City'} selected="selected"{/if}>
{$foo}
</option>
{/if}
{/foreach}
</select>
<select name="cboMaterial" id="cboMaterial">
<option value="">Material</option>
<option value="CT">Cotton</option>
<option value="SL">Silk</option>
</select>
<input name="btnSearch" type="button" value="Search" id="btnSearch"/>
</form>
新しいコードは次のとおりです。ここでは、コントローラー アクションでダミー URL を指定しています。これは、リダイレクトする womens/tops.php ファイルにリダイレクトされますが、選択した種類の素材を取得していません。
JavaScript
<script type="text/javascript">
function searchitem()
{
$strCity = document.getElementById('cboCityNameRes').value;
window.location.href = "http://www.legacy.com/womens-tops-"+$strCity+".php";
}
</script>
HTML コード
<select name="cboCityNameRes" id="cboCityNameRes" onchange="cityChanged()">
<option value=''>City</option>
{foreach from= $arritemCities item=foo}
{if $smarty.post.hdnCityName eq $foo}
<option value="{$foo}" selected="selected">{$foo} </option>
{else}
<option value="{$foo}" {if $foo eq 'City'} selected="selected"{/if}>
{$foo}
</option>
{/if}
{/foreach}
</select>
<select name="cboMaterial" id="cboMaterial">
<option value="">Material</option>
<option value="CT">Cotton</option>
<option value="SL">Silk</option>
</select>
<input name="btnSearch" type="button" value="Search" id="btnSearch" onclick="searchitem()"/>