Публикация нескольких значений переключателей в MySQL с помощью «foreach»

0

Я немного скорректировал свой код, но мне все еще трудно отправить его в таблицу. Кто-нибудь, пожалуйста, предоставьте мне пример массива foreach?

Страница формы

  <div style="padding: 15px;">

<span class="loginfail" style="font-size:24px; font-weight: bold">Notifications</span><p>

<?php include("progress_insertcomment.php"); ?>

 <?php 

// Make a MySQL Connection
mysql_select_db("speedycm_data") or die(mysql_error());

$query_comment = "select * from tbl_alert order by id desc limit 1";
$comment = mysql_query($query_comment, $speedycms) or die(mysql_error());
$row_comment = mysql_fetch_assoc($comment);
$totalRows_comment = mysql_num_rows($comment);

?>

<!--- add notification --->

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  <span id="sprytextarea1">

<textarea id='comment' name="comment" style="height: 75px; width:330px;"><?php echo $row_comment['comment']; ?></textarea> 
</span>
<p>
<button type="submit">Add</button>
               <input type="hidden" name="notc" value="1"/>
               </form>

               <!--- notification history --->

               <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

               <table border="0" cellspacing="2" cellpadding="2">
                  <?php

if ( $row_comment == 0 ) {

        echo "<span style='font-size: 11px;'>No current alerts.</span>";

    } else {

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM tbl_alert ORDER BY id DESC") 
or die(mysql_error());  

while($rows=mysql_fetch_array($result)){ ?>
  <tr>
    <td>
     <?php
echo "<div class='bubble'><div class='pimped'>
        <blockquote>" . $rows['comment'] . "
        </blockquote></div>
        <cite><strong>" . $rows['user'] . "</strong> @ " . $rows['date'] . "</cite>
        <span style='font-size: 10px;'>
        <p>
    <a href='editalert.php?id=". $rows['id'] ."' class='form' >Edit</a>&nbsp;&#8226;&nbsp;<a href='deletealert.php?id=". $rows['id'] ."' class='form'>Delete</a>
    </span>
    </div>
    "; 
    ?> 
    </td>
    <td valign="top" align="center"><div style="padding-left: 30px;"><span style="font-size: 10px;">Completed?</span>
    <p class="field switch">

    <!--- determine status of notification --->

    <?php $status = $rows['status']; ?>

    <input type="radio" name="selstatus" value="no" <?php if($status == 'yes') {echo 'checked';} else {echo '';} ?>/>
    <input type="radio" name="selstatus" value="yes" <?php if($status == 'yes') {echo 'checked';} else {echo '';} ?>/>
    <input type="hidden" name="statusid" value="<?php echo $rows['id']; ?>"/>
    <label for="radio1" class="cb-enable <?php if($status == 'yes') {echo 'selected';} else {echo '';} ?>"><span>Yes</span></label>
    <label for="radio2" class="cb-disable <?php if($status == 'no') {echo 'selected';} else {echo '';} ?>"><span>No</span></label>
    </p>
    </div></td>
  </tr>
  <tr>
    <td></td>
      <?php
    }
    }
    ?>
    <td align="center"><div style="padding-left: 30px;">
<button type="submit">Update</button>
        <input type="hidden" name="notc2" value="1"/>
    </div></td>
  </tr>
</table>
</form>

</div>
</body>

Обработка

           <?php   

        // 6) update notifications

        if (array_key_exists('notc2',$_POST)) {

echo "<p style='font-size: 12px;'>Thank you. The notifications have been updated successfully.<p>";

    echo "<p><span style='font-size: 12px;'>
                            <a onClick=\"history.go(-1)\" class='form'>Return</a></p>
                            <p></span>
                ";

            exit;

                };  
                ?>

После ряда исследований я узнал, что единственный способ вставить несколько значений радио в таблицу MySQL - это использовать массивы. Возник подобный вопрос, поднятый где-то на этом сайте: PHP несколько переключателей, которые рекомендовали использовать цикл foreach.

Использовать цикл foreach

<?php
foreach ( $_POST as $key => $val )
    echo "$key -> $val\n";
?>

$key будет именем выбранной опции и $val, ну, значение.

Как это применимо к моей ситуации? - Я изо всех сил пытаюсь найти любую помощь в Интернете. Я понимаю, что я использовал бы это на странице обработки, чтобы вытащить любые значения радио с предыдущей страницы, а затем закодировать код INSERT MySQL в процессе, пока это не будет сделано.

Теги:

1 ответ

1
Лучший ответ

Насколько я понимаю, это несколько строк. Чтобы заставить PHP разбирать POST таким образом, вы найдете потрясающую временную паузу, я предлагаю вам прочитать следующее: http://nl2.php.net/manual/en/language.variables.external.php

Если ваша таблица tbl_alert имеет id какого-либо типа, вы можете использовать имена имен для таких переключателей:

 <input type="radio" name="selstatus[<?phpecho $row['id'];?>]" ....

..., который даст вам хороший петлеобразный массив в $_POST ['selstatus'], с идентификатором предупреждения как ключом и значением переключателя в качестве значения. Попробуйте и print_r или var_dump $_POST, чтобы увидеть разницу. Для каждой из этих записей вы можете запускать запрос UPDATE или INSERT в зависимости от ваших потребностей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню