0

私は朝のほとんどの間、これに対する答えを求めてサーフィンをしてきましたが、私はその後に近いものを見つけることができないので、正しい検索用語を使用していないに違いありません。

それはおそらく簡単なことかもしれませんし、JSが必要かもしれません。プロジェクトでこれを行う必要がなかったのでわかりません。

基本的に私はいくつかのスタッフプロファイルを持っています、各プロファイルには連絡先ページへのリンクがあります。

<a href="contact_form">Contact Steve</a>

「contact_form」には、スタッフ名を使用した選択設定があります。知りたいのは、URLを介して情報を渡し、選択状態を変更して、選択状態で正しい名前を自動的に表示する方法があることです。

<select name="Recipient">
        <option selected="selected" value="reception">Reception</option>
        <option value="steve">Steve</option>
        <option value="bob">Bob</option>
        <option value="john">John</option>
</select>

したがって、この場合、ユーザーがフォームにアクセスしたときに「連絡先スティーブ」をクリックすると、デフォルトで選択されている「受信」ではなく「スティーブ」が選択されます。

ありがとう

4

3 に答える 3

2

この回答getQueryStringの関数を使用します。次のことができます。

function getQueryString() {
  var result = {}, queryString = location.search.substring(1),
      re = /([^&=]+)=([^&]*)/g, m;

  while (m = re.exec(queryString)) {
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
  }

  return result;
}

window.addEventListener("load", function() {
    document.getElementById('contact-list').value = getQueryString()['contact'];
});

次のようにselect要素のIDを設定する必要があることに注意してください。

<select name="Recipient" id="contact-list">

これで、URLを使用して選択する連絡先を指定できます。

contact_form.html?contact=steve
于 2012-11-01T22:53:18.607 に答える
0

jqueryの使用:

<a data-id="steve" href="#contact_form">Contact Steve</a>

...

$("a").click(function() {
   $("select[name=Recipient]").val($(this).data("id"))
})
于 2012-11-01T22:47:02.043 に答える
0

お問い合わせフォームにリダイレクトするときは、次のようなGETパラメータを指定してください:?rep = steve

//編集:または、すでにお問い合わせフォームでクリックが行われている場合は、私の前に提供されたソリューションを使用してください//編集

お問い合わせフォームで、javascriptを使用します。

var $_GET = [];
var get_arr = document.location.search.replace('?','').split('&');

for(var prm in get_arr){
dbl = get_arr[prm].split('=');
$_GET[dbl[0]] = dbl[1];
};

次に、たとえばjQueryを使用して次のようにします。

$(function() {
if ( typeof($_GET['rep']) != 'undefined' ) {
$('select[name="Recipient"] option:eq("'+$_GET['rep']+'")').attr("selected","selected");
};
});

チェックされていない、いくつかの構文エラーが含まれている可能性があります。

于 2012-11-01T22:48:21.367 に答える