Inquiry2.5.9 でラジオボタンが表示されない 投稿する

投稿者:kamo  投稿日時:2023-06-04 23:52:05
いつもお世話になっておりますkamoです。
SOY Inquiry2.5.9 にアップしてフォームの確認をしていたら、
問い合わせ項目の「ラジオボタン」がブラウザ上のページ側に表示できませんでした。
2.1から2.5.9へのアップなので、
テンプレートはカスタマイズしていますが、「ラジオボタン」に関する内容は
特に触っていません。
form.phpとconfirm.phpの変更は
「 Inquiry2.3以降にバージョンアップする際の注意点」の箇所を変更しました、
また、一部それだけではうまくない部分があり、form.phpではそれ以外に
少し変更をしました。

こちらの環境は以下の通りです。
サーバー:xserver phpバージョン:8.0.25
soy cms version: 3.11.40
soy inquiry version:2.5.9
です。
修正箇所などご指導よろしくお願いします。
投稿者:齋藤毅  投稿日時:2023-06-05 04:52:08
はじめにキャッシュの削除を行ってみてください。

それでも表示されない場合は、SOY Inquiryの管理画面で連絡方法のカラムの設定方法のキャプチャをお送りください。
合わせて、フォームが表示されているページの連絡方法に該当する箇所のソースコードもお伝えください。
投稿者:kamo  投稿日時:2023-06-05 05:55:57
お手数をかけてすみません。
キャッシュの削除は行っています。
ページのソース該当部分は
<tr><th>問い合わせ内容<span>(必須)</span></th>
<td>
	<textarea name="data[column_5]" rows="10" required></textarea> <p>※具体的な内容を入力してください</p>
</td>

</tr>
<tr><th>連絡方法<span>(必須)</span></th>
<td>
	<label>
<input type="radio" name="data[column_6]" value="メール"	checked="checked" >
メール
</label>
<label>
<input type="radio" name="data[column_6]" value="電話"	 >
電話
</label>
<span></span> <p>※連絡方法をご指定ください</p>
</td>
</tr>
このようになっています。また、設定は画像のように。
なおテンプレートはバージョンアップ前に使っていたものを、
少しだけ変えてそのまま利用しています。form.phpは以下です。
<form method="post" enctype="multipart/form-data" action="#confirm">

<div>
	<?php $message = $config->getMessage(); echo $message["information"]; ?>
</div>

<div>
	<table>

<?php
$dummyFormObj = new SOYInquiry_Form();
$counter = 0;
$columnCount = count($columns);
foreach($columns as $column){
	
	/**
	 * @プライバシーポリシーは必ず一行目で別テーブルで表示する
	 */
	
	$id = $column->getId();
	$obj = $column->getColumn($dummyFormObj);
	$label = $obj->getLabel();
	/*個人情報の項目タイトル名を表示*/
	if(!strlen($label) && $column->getType()==="PrivacyPolicy"){
	$label = "個人情報に同意";
}
	$annotation = $obj->getAnnotation();
	
	echo "<tr>";
	echo "<th>";
	echo $label;
	if($column->getRequire()){
		echo "<span>
	<input name="data[hash]" type="hidden" value="<?php echo $random_hash; ?>">
	<p><input name="confirm" type="submit" value="送信確認"></p>	
</div>
	<p>入力に不備がある場合、「送信確認」ボタンをクリックしても確認画面に移行しません。その場合はお手数ですが、もう一度入力内容をご確認の上、改めてボタンをクリックして下さい。</p>
</form>

<p>当webサイトへ送信する内容は、SSL(暗号化技術)により保護しております。ご安心してお問合せください。
フォームよりご記入頂いたお客様の個人情報は、当サイトの個人情報ポリシーに基づき、適切に取り扱います。</p>
form.phpに問題がありますでしょうか?
ご指導よろしくお願いします。
投稿者:齋藤毅  投稿日時:2023-06-05 08:57:49
ありがとうございます。
出力されているソースコードを確認しましたが、PHPの実行(HTMLの生成)の段階では問題なく実行されているように見えます。

<label>
<input type="radio" name="data[column_6]" value="メール"	checked="checked" >
メール
</label>
<label>
<input type="radio" name="data[column_6]" value="電話"	 >
電話
</label>
↑ 上記の箇所です。

CSSでlabelタグで囲まれている箇所は非表示といった記述はありませんか?
投稿者:kamo  投稿日時:2023-06-05 09:17:07
ご回答ありがとうごいます。
CSSでlabelタグで囲まれている箇所は非表示といった記述はありませんか?
非表示ではありませんが、カスタマイズはしています。
基本ボタンを非表示するとValidationをjsで適用時
エラーのスタイルが反映できない場合が有るため非表示とせず、最小化で設定して、
別にスタイルを設定しています。
その辺が、原因になっている可能性が強いわけですね。
CSSは前回のもののまま利用しているので、そこが引っかかっているとは気が付きませんでした。
該当の部分のCSSをコメントして動きを再度確認してみます。
投稿者:kamo  投稿日時:2023-06-05 09:38:04
komoです。

ラジオボタンが表示されました!
CSSが原因だったのですね。
input[type="radio"] + label
のCSSの最小化をやめCSSのスタイル設定を paddingだけ調整し、初期スタイルを継承したら、表示ができました。
ついでに変更前2019年はtableで構成していましたが、dlに変更しました。

大変お手数をお掛け致しました、
ありがとうございました。
ログインして投稿する