ラジオボタンを2つ用意しそれぞれに値をいれれば容易なことなのですが
checkbox1つでチェックの判定をしチェックされていればvalueにyesをいれ
チェックが外されていればvalueにno(nullでしょうか?)を入れたいのですが
その場合は、どのようなソースにすれば可能でしょうか?

教えてgooの新規会員登録がこのような形式だったので興味がありやってみたのですが
なかなかうまくできません・・・

現状は下記のソースなのですがvalueの値を分岐することで実現できそうなものの
いまいちわからない状態です^^;

<input type="checkbox" name="magazin" value="yes" <?php if (isset($_SESSION['magazin']) && $_SESSION['magazin'] == 'yes'){ echo 'checked'; }?>>配信メールを希望する。

A 回答 (1件)

<input type="checkbox" name="magazin" value="yes">あああ



if($_REQUEST[magazin] == "yes"){
$magazin = $_REQUEST[magazin];
}
else{
$magazin ="no";
}



$chk[$magazin] = " checked";
print "<input type='checkbox' name='magazin' value='yes' $chk[yes]>";

で チェックが入っている時は$chk[$magazin]がcheckedになるはず
(テストしてないのでダメかもですが…)

質問の答えとして妥当かどうかわかりませんが 参考まで…
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qforeach($stock as $name => $value){ の$value)で値用の変数

<!DOCTYPE html>
<html>
<head>
<title>P161 Sample6-7 array()を使う</title>
</head>
<body>

<?php

$stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>番号</th>
<th>個数</th>
</tr>

<?php

foreach($stock as $name => $value){
print "<tr><td>{$name}</td><td>{$value}個</td></tr>\n";
}

?>

</table>

</body>
</html>
以上の foreach($stock as $name => $value){ 
 のforeach文は特殊な繰り返し文で$stockは”変数名”・$name"はキー(引出し)用の変数・
 ここまでは何となく意味がわかります。最後のは$valueは”値用の変数”・・とあります。
 ここで言う、”値用の変数”の値とは何のことなのでしょうか? 
 よろしくお願いいたします。

<!DOCTYPE html>
<html>
<head>
<title>P161 Sample6-7 array()を使う</title>
</head>
<body>

<?php

$stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>番号</th>
<th>個数</th>
</tr>

<?php

foreach($stock as $name => $value){
print "<tr><td>{$name}</td><td>{$value}個</td></tr>\n";
}

?>

</table>

</body>
</html>
以上の foreach($stock as $name => $value){ 
 のfor...続きを読む

Aベストアンサー

$name には、"みかん"、"いちご" など。$valueには、80や60が入ります。

> $stock = array("みかん"=>80,"いちご"=>60,"りんご"=>22, "もも"=>50,"くり"=>57);

の => という記号と対応しているでしょ?

Q$argv[1]) && $argv[1]・同じ

 以下のプログラムですが!

<html>
<head>
<meta "charset=utf-8" />
<title>論理演算子</title>
</head>
<body>

<?php
if(isset($argv[1]) && $argv[1]) {
echo '与えられた引数は真です',PHP_EOL;
}
else{
echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL;
}

?>

</body>
</html>


以上のプログラムの実行結果は以下となりました。
 

 引く数が与えられていないか、与えられた引数が真ではありません

以上の実行結果は”真でありません”と出ています。
 
 $argv[1]) && $argv[1]・・・&&は理論積の、両辺は同じなのでtrueならばtrueの真だから、

 "与えられた引数は真です"と出るのではないんでしょうか!?

 以上よろしくお願いします。

Aベストアンサー

【Webブラウザから実行した】

変数 $argv に値を格納する手段がないので、elseブロックしか実行されません。


【コマンドラインから実行した】

第1引数は $argv[1] として格納されます。もしそれが真と評価される文字列であった場合、ifブロックが実行されます。偽と評価される文字列であったもしくは引数を何も渡さなかった場合、elseブロックが実行されます。


>> $argv[1]) && $argv[1]・・・&&は理論積の、両辺は同じなのでtrueならばtrueの真だから、

メチャクチャです。分割するところもおかしいですし…もとより、

「ソースコードを比較しているのではない」

と言ったほうがいいでしょうか。もし

「どっちも $argv[1] と書かれているから $argv[1] && $argv[1] は常に真となる」

と言うのであれば、プログラミングの根幹となっている “変数” の概念すら否定することになりますよね。変数で重要なのは変数名ではなくてそこに格納された値です。

(PHPの場合は変数名が重要になることもありますが、このシーンでは関係ありません)

【Webブラウザから実行した】

変数 $argv に値を格納する手段がないので、elseブロックしか実行されません。


【コマンドラインから実行した】

第1引数は $argv[1] として格納されます。もしそれが真と評価される文字列であった場合、ifブロックが実行されます。偽と評価される文字列であったもしくは引数を何も渡さなかった場合、elseブロックが実行されます。


>> $argv[1]) && $argv[1]・・・&&は理論積の、両辺は同じなのでtrueならばtrueの真だから、

メチャクチャです。分割するところもおかしいですし...続きを読む

Qプログラムの中の public $name = "姓名"; public $age = 20;

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

$pr2 = new Person;
$pr2->name = "佐藤";
$pr2->age = 38;

?>
<table border="2">
<tr bgcolor="#AAAAAA">
<th>名前</th>
<th>年齢</th>
</tr>

<?php

print "<tr><td>";#特に<tr>がなくてもOK
print $pr1->getnam();
print "</td><td>";#特に</td>がなくてもOKでした。
print $pr1->getage();
print "</td></tr>";#特になくても表の2行目表自体は影響はなかった。

print "<tr><td>";
print $pr2->getnam();
print "</td><td>";
print $pr2->getage();
print "</td></tr>";

?>

</table>
<?php

class Person

{
public $name = "姓名";
public $age = 20;

function getnam(){return $this->name;}
function getage(){return$this->age;}
}

?>

</body>
</html>

以下のプログラムの中に
public $name = "姓名";
public $age = 20;
 があります。なくても表示自体に影響はないのですが、何の目的であるのでしょうか!?
以下問題のプログラムです。 よろしくお願いいたします
--------------------------------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<title>P251 Sample8-2 複数のオプションを作成する</title>
</head>
<body>

<?php
#$は変数の宣言
$pr1 = new Person;
$pr1->name = "鈴木";
$pr1->age = 56;

...続きを読む

Aベストアンサー

変数の置き場を、メモリー上に確保するためです。
前者は文字として、後者は数値として。

Qprint "{$data[$i][$j]}";の $dataと「直接関係」がある

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都のデータを格納します。
$data[3][2] = 19;
$data[4][0] = "福岡";
$data[4][1] = 27;//$data[4][●]に福岡のデータを格納します。
$data[4][2] = 22;

?>

<table border="2">
<tr bgcolor="#AAAAAA">
<th>都市名</th>
<th>最高気温</th>
<th>最低気温</th>
</tr>

<?php

for($i=0; $i<count($data); $i++){
print "<tr>";
for($j=0; $j<count($data[0]); $j++){
print "<td>{$data[$i][$j]}</td>";//配列の要素を出力する。
}
print "</tr>\n";
}

?>

</table>

</body>
</html>
以上ですが・・・だんだん難しくなってきました!
 さて
  print "<td>{$data[$i][$j]}</td>";の $dataと「直接関係」があるところは
 1) for($j=0; $j<count($data[0]); $j++){  
 2)$data[0][0] = "東京";~$data[4][2] = 22;
  の1)2)のどちらと「直接関係」があるのでしょうか?
 以上よろしくお願いいたします。

<!DOCTYPE html>
<html>
<head>
<title>P185 Sample6-15▸ 多次元配列</title>
</head>
<body>

<?php

$data[0][0] = "東京";
$data[0][1] = 32;//$data[0][●]に東京のデータを格納します。
$data[0][2] = 25;
$data[1][0] = "名古屋";
$data[1][1] = 28;//$data[1][●]に名古屋のデータを格納します。
$data[1][2] = 21;
$data[2][0] = "大阪";
$data[2][1] = 27;//$data[2][●]に大阪のデータを格納します。
$data[2][2] = 20;
$data[3][0] = "京都";
$data[3][1] = 26;//$data[3][●]に京都の...続きを読む

Aベストアンサー

> の1)2)のどちらと「直接関係」があるのでしょうか?

No.1さんと同じく質問の意味が理解できません。
わかり易く補足いただいた方が良いかと思います。



”の1)2)のどちらと「関係」があるのでしょうか?” というご質問であれば

”どちらとも関係あります” という回答になります。

Qissetで変数チェック

php初心者です

issetで変数の中に値が入っているか調べたいのですがphp5.4でフォームから文字列を送るとfalseになってしまいます。

文字列が入っているかチェックしたいのですがどうしたらいいでしょうか?

if(isset($_POST['title'])&&$_POST['title']!=''){
$title = $_POST['title'];
}else{
$title = '';
}

よろしくお願いします

Aベストアンサー

下記ソースで試しましたが、問題ありません。form要素(method属性)が間違っていないか再確認してください(誤りがあるとGETになるので)。

<?php
if(isset($_POST['title'])&&$_POST['title']!=''){
$title = $_POST['title'];
}else{
$title = '';
}
print $title . '<hr>';
?>
<form action="" method="post">
<input type="text" name="title" value="">
<input type="submit">
</form>


個人的には

if ((isset($_POST['title']))&&($_POST['title'] !== '')) {

と書きたいところです(演算子の優先順位でハマりたくないので、なるべく括弧で括る)。




>他のやり方でもいいので文字と数字両方値があるかチェックする方法教えてください

「文字と数字両方値があるか」とはどういう意味でしょうか?数字(0~9)とそれ以外のascii文字の両方が含まれているかをチェックしたいということですか?今現在の内容とはまったく別次元の話になっていますけど(汗

下記ソースで試しましたが、問題ありません。form要素(method属性)が間違っていないか再確認してください(誤りがあるとGETになるので)。

<?php
if(isset($_POST['title'])&&$_POST['title']!=''){
$title = $_POST['title'];
}else{
$title = '';
}
print $title . '<hr>';
?>
<form action="" method="post">
<input type="text" name="title" value="">
<input type="submit">
</form>


個人的には

if ((isset($_POST['title']))&&($_POST['title'] !== '')) {

と書きたいところです(演算子の優先順位...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報