【问题标题】:PHP & MySQL - saving and looping problemsPHP & MySQL - 保存和循环问题
【发布时间】:2010-04-26 10:18:06
【问题描述】:

我是 PHP 和 MySQL 的新手 我希望用户能够使用 PHP 在名为 names 的 MySQL 数据库表中存储多个名称和含义 我将在每次用户点击时使用 JQuery 动态创建表单字段一个链接,因此用户可以输入 1 到 1,000,000 个不同的名称和含义,这些名称将存储在名为 names 的表中。

自从我问了最后一个问题以来,我想出了如何使用for 循环从我的表单中存储我的值,但是每次当我添加一个或多个动态字段时循环我的值时,名为meaning 的第二个表单字段将不保存输入的值,我的动态表单字段也会不断循环加倍、三倍等输入的值到数据库中,这完全取决于动态添加了多少表单字段。我想知道如何解决这些问题?

在旁注中,我用 echo 替换了查询以查看正在输入的值。

这是 PHP 代码。

<?php
if(isset($_POST['submit'])) {
$mysqli = mysqli_connect("localhost", "root", "", "site");
$dbc = mysqli_query($mysqli,"SELECT * FROM names WHERE userID='$userID'");

$name = $_POST['name'];
$meaning = $_POST['meaning'];

if(isset($name['0']) && mysqli_num_rows($dbc) == 0 && trim($name['0'])!=='' && trim($meaning['0'])!=='') {

for($n = 0; $n < count($name); $n++) {
    for($m = 0; $m < count($meaning); $m++) {
        echo $name[$n] . '<br />';
        echo $meaning[$m] . '<br /><br />';
        break;
    }
}

}

}
?>

这是 HTML 代码。

<form method="post" action="index.php">
<ul>
    <li><label for="name">Name: </label><input type="text" name="name[]" id="name" /></li>
    <li><label for="meaning">Meaning: </label><input type="text" name="meaning[]" id="meaning" /></li>
    <li><input type="submit" name="submit" value="Save" /></li>
</ul>
</form>



如果需要,我将放置 JQuery 代码。

【问题讨论】:

    标签: php jquery mysql


    【解决方案1】:

    如果你看一下提交的数组,事情可能会更清楚:

    echo('&lt;pre&gt;' . print_r($_POST, TRUE) . '&lt;/pre&gt;');

    如果您仍然不确定如何解决问题:

    for($index = 0; $index < count($_POST['name']; $index++)
     {
      echo 'name: ' . $_POST['name'][$index] . '<br />';
      echo 'meaning: ' . $_POST['meaning'][$index] . '<br /><br />';
     }

    【讨论】:

      【解决方案2】:

      首先你使用table而不是ul li

      我的代码如下,运行完美,你可以看到here

      JAVASCRIPT

      <script type="text/javascript" src="js/jquery.js"></script>
          <script type="text/javascript">
          $(document).ready(function() {
          $("#addMore").click(function(){
          $("#nameline").clone().insertAfter("#nameline").slideDown(500);
          $("#meaningline").clone().insertAfter("#nameline").slideDown(500);
          $("#name:last").val("").focus();
          $("#meaning:last").val("");
      
      });
          });
      </script>
      

      PHP

      <form method="post" action="">
      <input type="button" name="addMore" id="addMore" value="add">
      <table id="myTable">
          <tbody>
          <tr id="nameline">
              <td><label for="name">Name: </label><input type="text" name="name[]" id="name" /></td>
          </tr>
          <tr id="meaningline">
              <td><label for="meaning">Meaning: </label><input type="text" name="meaning[]" id="meaning" /></td>
          </tr>
          <tr><td><input type="submit" name="submit" value="Save" id="submit" /></td></tr>
          </tbody>
       </table>
      </form>
      <?php print_r($_POST);?>
      

      更多信息可以参考this link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-23
        • 1970-01-01
        • 2016-04-05
        • 2021-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-12
        相关资源
        最近更新 更多