dポイントプレゼントキャンペーン実施中!

<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件)

サーバによってできる出来ないあるかもですが


htaccessとかでrewrite出来ないですか?
    • good
    • 0

ああ、また無駄なSEOですか・・・


理論的にはjavascriptで連結するのはまさにSEO的に不利ですので
できないと思った方がよいでしょう

一度チェックしたものを確認画面をつくってそこから再度送信する
ようなのが限界でしょうか。
いずれにしろ組合せが多数あるのであれば、ヒット率は相当低いので
SEOが有利に働くと期待できるようなページにはならないと思います
    • good
    • 0

どうしても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>
    • good
    • 0
この回答へのお礼

ありがとうございます。

チェックボックス1はccc=~として
チェックボックス2はddd=~として
チェックボックス3はeee=~として
チェックボックス4はfff=~として
チェックボックス5はggg=~として
?ccc=~&ddd=~&eee=~&fff=~&ggg=~

あまりにも長くなると検索エンジンが拾ってくれないそうで、
この形にすることで解決できるとのことなので、送信時に連結させたいです。

お礼日時:2012/07/19 16:11

>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"]);
}
?>
    • good
    • 0
この回答へのお礼

自信がないのですが、このような感じで良いのでしょうか。

<?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>

お礼日時:2012/07/18 18:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!