以下の3つの部分からなるコードを使用しています。
コードの最初の部分:基本的に、ユーザーがGoogleを選択すると、JavaScript関数changeSearchEngineがトリガーされます。
<p id="searchbox">This paragraph will change once javascript is triggered</p>
<form align=right>
<select name="searchengine" onchange="changeSearchEngine(this.form)">
<option value="google">Google</option>
</select>
</form>
これは、JavaScriptでの私のchangeSearchEngine関数です。
function changeSearchEngine(form)
{
var searchEngine=form.searchengine.value;
if (searchEngine=="google")
{
var url_google='<form method="get" action="http://www.google.com/search" onsubmit="submitGoogle(this.form)" target="_blank"><input type="text" name="q" size="31" maxlength="255" value="" /><input type="submit" value="Google Search"/></form>';
document.getElementById("searchbox").innerHTML=url_google;
}
}
この時点で、すべてが正常に機能しています。グーグルを選択すると、グーグルの検索ボックスが表示されます。私はすべてを検索できます。
onsubmit = "submitGoogle(this.form)"があることに注意してください。ユーザーが検索した用語をSQLテーブルに保存する必要があります。だから私はユーザーがタイプを持っているものをキャプチャするために以下のこのjavascript関数を持っています:
function submitGoogle(form)
{
alert("Inside submitGoogle function");
var searchterm=form.q.value;
alert(searchterm); //to test. this part didnt capture the value.
}
なんとかsubmitGoogle関数を呼び出すことができましたが、searchterm = form.q.valueを使用しているにもかかわらず、qの値を取得できません。私はここで何を間違えましたか?