2

4 つのテキストエリアと、各テキストエリアの横にラジオ ボタンがあるラジオ グループを含む単純なフォームがあります。

<form action="" method="post" id="form">
<table width="35%" border="0" align="left" cellpadding="5">
  <tr>
    <td valign="top">Pathway</td>
    <td valign="top">Allowed
    <br />(One only)</td>
    <td valign="top">Comment</td>
  </tr>
  <tr>
    <td valign="top">2. No action. See again</td>
    <td valign="top"><input type="radio" name="pathway" value="y" id="pathway_1" /></td>
    <td valign="top"><textarea name="pathway_comment[]" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td valign="top">2. See again</td>
    <td valign="top"><input type="radio" name="pathway" value="y" id="pathway_2" /></td>
    <td valign="top"><textarea name="pathway_comment[]" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td valign="top">3. Refer to ED</td>
    <td valign="top">   <input type="radio" name="pathway" value="y" id="pathway_3" /></td>
    <td valign="top"><textarea name="pathway_comment[]" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td valign="top">4. Refer to specialist</td>
    <td valign="top"><input type="radio" name="pathway" value="y" id="pathway_4" /></td>
    <td valign="top"><textarea name="pathway_comment[]" cols="45" rows="5"></textarea></td>
  </tr>
  <tr>
    <td colspan="3" valign="top"><input type="submit" name="define_pathways" id="submit" value="Add Pathways" /></td>
    </tr>
</table>
</form>

各テキストエリア ($_POST['pathway_comment']) の内容は、ループを介して個別のレコードとして MySQL テーブルに挿入されています。

$pathway = $_POST['pathway'];
$pathway_comment = $_POST['pathway_comment'];
if(isset($_POST['define_pathways'])){ 
    for($i=0, $count = count($pathway_comment);$i<$count;$i++) {
        $comment = $pathway_comment[$i];
        $query_level_1 = "INSERT INTO pathway (pathway_pk,case_fk,level,pathway_allowed,comment)
          VALUES ('','$vcase','1','$pathway','$comment')";
        $result_level_1 = mysql_query($query_level_1, $connection) or die(mysql_error());
    }

テーブル構造:

`pathway_pk` int(4) NOT NULL AUTO_INCREMENT,
  `case_fk` int(3) NOT NULL,
  `level` int(1) NOT NULL,
  `pathway_allowed` char(1) NOT NULL DEFAULT 'n',
  `comment` text NOT NULL,

挿入でpathway_allowedは、4 つのレコードの 1 つを「y」に設定し、他のレコードはデフォルトの「n」のままにします。これどうやってするの??

4

1 に答える 1

2

ラジオボックスの値属性を「y」から「0」、「1」、「2」、「3」に変更する必要があります。

次に、PHPコードを次のように変更する必要があります。

$pathway = intval($_POST['pathway']);

$pathway_comment = array();
foreach($_POST['pathway_comment'] as $comment) {
    $pathway_comment []= mysql_real_escape_string($comment);
}
if(isset($_POST['define_pathways'])){ 
for($i=0, $count = count($pathway_comment);$i<$count;$i++) {
    $comment = $pathway_comment[$i];
    $query_level_1 = sprintf(
        "INSERT INTO pathway (             
           pathway_pk,
           case_fk,
           level,
           pathway_allowed,
           comment
        ) VALUES (
           '',
           '$vcase',
           '1',
           '%s',
           '$comment')", $pathway === $i ? 'y' : 'n');

       $result_level_1 = mysql_query($query_level_1, $connection) or die(mysql_error());
    }
于 2012-12-18T02:49:52.417 に答える