0

我可能有两个问题。第一个问题我想我知道答案,但无论如何我都会问它,以防万一我错过了一些明显的东西。

  1. 您可以将 HTML 行中的数据插入到 db 表中吗?见下文:

    <tr><td>Colby (Big Cheese)</td>
              <td>1A</td>
              <td>
              <select width=200>
              <option>Key Movement</option>
              <option>Movement -1</option>
              <option>Movement -2</option>
              <option>Movement -3</option>
              <option>Movement -4</option>
        </select></td>
        <td>Sets/Reps/Seconds</td>
        <td>Rest</td>
        <td>00</td>
        </tr><tr><td>Mike (Big Mac)</td>
              <td>1A</td>
              <td>
              <select width=200>
              <option>Key Movement</option>
              <option>Movement -1</option>
              <option>Movement -2</option>
              <option>Movement -3</option>
              <option>Movement -4</option>
        </select></td>
        <td>Sets/Reps/Seconds</td>
        <td>Rest</td>
        <td>00</td>
        </tr>
    

我希望将每个表行中的数据写入数据库中的一行。如果答案是否定的,我将转到我的第二个问题。

这是输出此 HTML 的我的 EDITED 数组。

    $count;
if(empty($workout_class) === false)
{   
foreach($workout_class as $wc){
if ($wc['pagenum'] !== $pagenum) continue 1;

    echo '<tr>
        <td name="first_name'.$count.'">'. ($wc['first_name']).' 
        <span name="nickname'.$count.'">('. ($wc['nickname']).')</span>
        </td>
              <td name="order'.$count.'">'. ($wc['order']). '</td>
              <td>
              <select name="movement'.$count.'" width=200>
              <option>'. ($wc['mv_00']). '</option>
              <option>'. ($wc['mv_01']). '</option>
              <option>'. ($wc['mv_02']). '</option>
              <option>'. ($wc['mv_03']). '</option>
              <option>'. ($wc['mv_04']). '</option>
        </select></td>
        <td name="rep_set_sec'.$count.'">'. ($wc['rep_set_sec']). '</td>
        <td name="rest'.$count.'">'. ($wc['rest']). '</td>
        <td>00</td>
        </tr>';
        $count++;

   } // foreach($data_array

我有几个问题。$_POST没有从“名称”值中获取任何数据。它也只循环通过第一行并停止。有任何想法吗。

4

2 回答 2

0

您将需要使用服务器端(PHP、ASP、JSP)语言通过表单(GET、POST)或 JQuery/Ajax 来执行此操作。您已经有了选择输入,因此一旦设置了数据库和服务器端语言,实现起来将相当容易。

<?php
$km1 = $_POST['key_move1'];
$km2 = $_POST['key_move2'];
/*
Your mysql code to enter $km1 and $km2 into the database
*/
echo $km1 . " -- " . $km2 . " <-  ...  Thos are your values that would pass to database";
?>

<form action="#" method="post">
<table>
<tr><td>Colby (Big Cheese)</td>
      <td>1A</td>
      <td>
      <select name="key_move1" width=200>
      <option>Key Movement</option>
      <option>Movement -1</option>
      <option>Movement -2</option>
      <option>Movement -3</option>
      <option>Movement -4</option>
</select></td>
<td>Sets/Reps/Seconds</td>
<td>Rest</td>
<td>00</td>
</tr><tr><td>Mike (Big Mac)</td>
      <td>1A</td>
      <td>
      <select name="key_move2" width=200>
      <option>Key Movement</option>
      <option>Movement -1</option>
      <option>Movement -2</option>
      <option>Movement -3</option>
      <option>Movement -4</option>
</select></td>
<td>Sets/Reps/Seconds</td>
<td>Rest</td>
<td>00</td>
</tr>
</table>
<input type="submit" value="Go!">

php循环:

$count = 0;
foreach($workout_class as $wc){
if ($wc['pagenum'] !== $pagenum) continue 1;

echo '<tr><td>'. ($wc['first_name']).' ('. ($wc['nickname']).')</td>
          <td>'. ($wc['order']). '</td>
          <td>
          <select name="key_move' . $count . '" width=200>
          <option>'. ($wc['mv_00']). '</option>
          <option>'. ($wc['mv_01']). '</option>
          <option>'. ($wc['mv_02']). '</option>
          <option>'. ($wc['mv_03']). '</option>
          <option>'. ($wc['mv_04']). '</option>
    </select></td>
    <td>'. ($wc['rep_set_sec']). '</td>
    <td>'. ($wc['rest']). '</td>
    <td>00</td>
    </tr>';
$count++
}
于 2012-08-16T20:09:13.980 回答
0

就像 Zak 提到的那样,您需要将此表放在表单中并提交,然后处理服务器端(PHP)......或者让 JavaScript 获取值并通过 AJAX 提交到服务器端脚本。无论哪种方式,您都必须有一个脚本服务器端来获取这些值、构建一个查询并创建一个 DB 条目。

作为旁注,您可能希望为每个 HTML 组件创建 id 元素,以便您可以轻松地从 POST 中检索这些值,就像这样......

<select id="colby" name="colby" width=200> 
于 2012-08-16T20:17:24.073 回答