当前位置: 首页 > 知识库问答 >
问题:

在表单中创建输入组并通过PHP中的POST访问它们

方奕
2023-03-14

是否可以创建输入组并通过$_post使用PHP以关联数组的方式访问它们?我有一个用户可以输入产品信息的表单。每个产品都有一个名称和描述。

简单解决方案

在一个典型的表单中,我将创建一个HTML结构,如下所示:

<form method="post" id="insert" action="test.php">
  <!-- First product -->
  <input type="text" name="title1"/>
  <input type="text" name="description1"/>

  <!-- Second product -->
  <input type="text" name="title2"/>
  <input type="text" name="description2"/>

  <input type="submit" name="submit" value="Insert products" />
</form>

并通过PHP访问数据:

if(isset($_POST['submit']))
{
  echo 'Submitted data:<br/>';
  echo 'title='.$_POST['title1'].' description='.$_POST['description1'].'<br/>';
  echo 'title='.$_POST['title2'].' description='.$_POST['description2'].'<br/>';
}


棘手(但更难)的伪解

我想要创建的是一个HTML伪代码,其中产品输入分组为具有标题和描述的结构,如下所示:

<form method="post" id="insert" action="test.php">
  <!-- First product -->
  <div name="products[]">
    <input type="text" name="title"/>
    <input type="text" name="description"/>
  </div>

  <!-- Second product -->
  <div name="products[]">
    <input type="text" name="title"/>
    <input type="text" name="description"/>
  </div>

  <input type="submit" name="submit" value="Insert products" />
</form>

访问输入的PHP伪代码:

if(isset($_POST['submit']))
{
  echo 'Submitted data:<br/>';

  foreach($_POST["products"] as $product)
  {
    echo 'title='.$product['title'].' description='.$product['description'].'<br/>';
  }
}

可行吗?提前道谢。

共有1个答案

计寒
2023-03-14

是的,您可以为该属性使用分组名称,以便在提交时对其进行分组。该div中的组name=“”不正确,它必须位于输入元素上。示例:

<?php

if(isset($_POST['submit'])) {
    $products = $_POST['products']; // assuming they are all filled, they will be here inside
    echo '<pre>';
    print_r($products); // check the results
}


?>

<form method="post" id="insert" action="">
  <!-- First product -->
  <!-- group them by row index -->
  Title: <input type="text" name="products[1][title]"/>
  Description: <input type="text" name="products[1][description]"/>
  <br/><br/>
  <!-- Second product -->
  Title: <input type="text" name="products[2][title]"/>
  Description: <input type="text" name="products[2][description]"/>
  <br/><br/>
  <input type="submit" name="submit" value="Insert products" />
</form>

超级基础插入示例(这只是一个示例,你可以用也可以不用):

if(isset($_POST['submit'])) {
    $products = $_POST['products'];

    $db = new mysqli('localhost', 'username', 'password', 'database');
    $insert = $db->prepare('INSERT INTO `table_name` (`title`, `description`) VALUES (?, ?)');
    foreach($products as $product) {
        $insert->bind_param('ss', $product['title'], $product['description']);
        $insert->execute();
    }
    $insert->close();
}
 类似资料:
  • 问题内容: 是否可以获取多个具有相同名称的输入,然后从PHP访问它们?想法是这样的:我有一个表格,可以输入不确定数量的物理地址以及其他信息。如果我只是在几个条目中为每个字段赋予相同的名称,然后通过post提交该数据,PHP是否可以访问它? 举例来说,我在一个名为“ xyz”的页面上有五个输入,我想使用PHP访问它们。我可以做些什么: 如果是这样,那将使我的生活变得轻松十倍,因为我可以通过一个表单发

  • 问题内容: 我正在编写API,并且想处理从表单上传的文件。表单的标记没有什么太复杂的: 但是,我很难理解如何处理此服务器端并与cURL请求一起发送。 我熟悉使用带有数据数组的cURL 发送请求,并且在上载文件时阅读的资源告诉我在文件名前加上一个符号。但是这些相同的资源具有硬编码的文件名,例如 那么这是哪个文件路径?我在哪里可以找到它?会是什么样子,在这种情况下,我的数组应该像这样: 还是我走错路了

  • 用户必须在浏览器和应用程序之间手动复制粘贴“授权码”,这在Android中不是一种实用的获取访问令牌的方法。 为了找到一种新的方法,我使用Android API中的来获取访问令牌,同时使用Java API中的和来获取文件列表,如下所示, 不幸的是,当调用中的时,应用程序总是由于NetworkOnMainThreadException而崩溃。 所以我的问题是,如何通过使用访问令牌而不是在中应用授权代

  • 问题内容: 我正在使用Jenkins管道构建一个Android应用程序。 构建成功完成后,它将创建一个.apk文件。 我希望质量检查小组的成员能够下载该文件并在将其上传到Google商店之前测试该应用程序,因此我希望这些用户(有权访问Jenkins服务器)能够通过Jenkins服务器如该SO问题所示,但由于某种原因,我用来尝试下载工件的URL一直给我404错误。 这些是我尝试访问的链接,但无济于事

  • 问题内容: 我有一个HTML表单,该表单已发布到Flask路线中。但是,是空的。如果我尝试通过id访问值之一,则会收到400错误。如何发布HTML表单中的值并在Flask中访问它们? 问题答案: 您没有属性。这就是客户端将传递给服务器的内容。如果您访问未提交的表单密钥,则Flask会引发400错误。

  • 我需要创建PDF表格,可以用来从用户的输入。它们需要包含下拉框和文本框。请建议哪种软件或工具最适合我的目的