<form method="get" action="<?php = $_SERVER['PHP_SELF']; ?>">
<input type="checkbox" name="c" value="001" />
<input type="checkbox" name="c" value="002" />
<input type="checkbox" name="c" value="003" />
<input type="checkbox" name="c" value="004" />
<input type="checkbox" name="c" value="005" />
<input type="submit" value="送信" />
</form>
submitするとURLに ?c=001&c=002&c=003… が追加されます。
その形ではなく、c=001002003… と連結してURLに追加するにはどうしたら良いですか?
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ああ、また無駄なSEOですか・・・
理論的にはjavascriptで連結するのはまさにSEO的に不利ですので
できないと思った方がよいでしょう
一度チェックしたものを確認画面をつくってそこから再度送信する
ようなのが限界でしょうか。
いずれにしろ組合せが多数あるのであれば、ヒット率は相当低いので
SEOが有利に働くと期待できるようなページにはならないと思います
No.2
- 回答日時:
どうしてもURLにつなげないといけないのでしょうか?
受け取った側でつなぐのではいけないのですか?
<?php
$checked=array("ccc"=>array("001"=>"","002"=>"","003"=>"","004"=>"","005"=>""));
if(isset($_REQUEST["ccc"]) and is_array($_REQUEST["ccc"])){
print "ccc=".htmlspecialchars(implode($_REQUEST["ccc"]));
foreach($checked["ccc"] as $key=>$val){
if(in_array($key,$_REQUEST["ccc"])) $checked["ccc"][$key]=" checked";
}
}
?>
<form>
<input type="checkbox" name="ccc[]" value="001" onchange="this.form.submit()"<?PHP echo $checked["ccc"]["001"];?>>
<input type="checkbox" name="ccc[]" value="002" onchange="this.form.submit()"<?PHP echo $checked["ccc"]["002"];?>>
<input type="checkbox" name="ccc[]" value="003" onchange="this.form.submit()"<?PHP echo $checked["ccc"]["003"];?>>
<input type="checkbox" name="ccc[]" value="004" onchange="this.form.submit()"<?PHP echo $checked["ccc"]["004"];?>>
<input type="checkbox" name="ccc[]" value="005" onchange="this.form.submit()"<?PHP echo $checked["ccc"]["005"];?>>
<input type="submit" value="go">
</form>
ありがとうございます。
チェックボックス1はccc=~として
チェックボックス2はddd=~として
チェックボックス3はeee=~として
チェックボックス4はfff=~として
チェックボックス5はggg=~として
?ccc=~&ddd=~&eee=~&fff=~&ggg=~
あまりにも長くなると検索エンジンが拾ってくれないそうで、
この形にすることで解決できるとのことなので、送信時に連結させたいです。
No.1
- 回答日時:
>c=001002003… と連結してURLに追加する
まず、これはHTMLの仕様ですのでできません。
PHP_SELFは脆弱なので使わない方がいいでしょう
nameに同じものを指定したい場合は、c[]のような疑似配列風にやると
PHPのスクリプトでデータを得るのが便利です。
<form method="get" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="checkbox" name="c[]" value="001" />
<input type="checkbox" name="c[]" value="002" />
<input type="checkbox" name="c[]" value="003" />
<input type="checkbox" name="c[]" value="004" />
<input type="checkbox" name="c[]" value="005" />
<input type="submit" value="送信" />
</form>
<?PHP
if(isset($_REQUEST["c"]) and is_array($_REQUEST["c"])){
print_r($_REQUEST["c"]);
}
?>
自信がないのですが、このような感じで良いのでしょうか。
<?php
if(isset($_REQUEST["ccc"])){
$mb_str = mb_strlen($_REQUEST["ccc"],"UTF-8");
$ppp="ccc=";
for($i=0,$n=0; $i<$mb_str; $i=$i+3,$n++){
$aaa[$n]=substr($_REQUEST["ccc"],$i,3);
$ppp .= $aaa[$n];
}
}
print_r($aaa);
echo "<br>".$ppp;
?>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
<form name="ggg">
<input type="hidden" name="ccc" value="" />
</form>
<form name="fff">
<input type="checkbox" name="ccc" value="001" onchange="rrr()" <?php if(isset($aaa) && in_array("001",$aaa)){echo "checked ";} ?>/>
<input type="checkbox" name="ccc" value="002" onchange="rrr()" <?php if(isset($aaa) && in_array("002",$aaa)){echo "checked ";} ?>/>
<input type="checkbox" name="ccc" value="003" onchange="rrr()" <?php if(isset($aaa) && in_array("003",$aaa)){echo "checked ";} ?>/>
<input type="checkbox" name="ccc" value="004" onchange="rrr()" <?php if(isset($aaa) && in_array("004",$aaa)){echo "checked ";} ?>/>
<input type="checkbox" name="ccc" value="005" onchange="rrr()" <?php if(isset($aaa) && in_array("005",$aaa)){echo "checked ";} ?>/>
</form>
<script type="text/javascript">
function rrr() {
var fff = document.forms['fff'];
var ggg = document.forms['ggg'];
var cval = "";
for(i=0; i<fff.ccc.length; i++){
if(fff.ccc[i].checked){
cval += fff.ccc[i].value;
}
}
ggg.ccc.value = cval;
if(cval==""){ return; }
ggg.submit();
}
</script>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスを用い、MySQL...
-
入力フォーム→確認画面→送信画...
-
PHPで画像の渡しが上手く行きま...
-
配列をPOSTで受けとる
-
PHPで受け取ったパラメータを別...
-
POSTやGETの変数をフォーム無し...
-
php ラジオボタンのデータの渡...
-
クレジットカード決済のPHP
-
PHPでCookieを使った訪問回数に...
-
フォームへの前回入力値をクリ...
-
PHPのsubmitボタンが複数ある場合
-
【PHP】 文字サイズの変更につ...
-
チェックボックスの全選択/解除...
-
フォームの文字列変換ができない
-
チェックボックスの必須項目指定
-
IEで、フォームにたとえば
-
PHPでクリックするたびに変数を...
-
適性診断テストみたいなものを...
-
php + javascriptで値の保持
-
PHP 掲示板について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
PHPで画像の渡しが上手く行きま...
-
フォームでのリセットを使う方法
-
入力フォーム→確認画面→送信画...
-
PHPでユーザー情報を入力して簡...
-
syntax error, unexpected '}' ...
-
PHPで、ボタンを押すと同じペー...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
Javascript→PHPに...
-
PHPとHTML+Xamppの掲示板で画像...
-
チェックボックスによる検索
-
PHPでCookieを使った訪問回数に...
-
PHPの関数実行
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
【HTML(PHP?)】複数のフォーム...
おすすめ情報