繁体   English   中英

数组多值文本框

[英]Array Multiple Values Text-Box

我在使数组正常工作时遇到一些问题,不确定如何正确构造foreach loop以及如何正确将其添加到查询中以便插入。

这是我对数组甚至PHP的首次尝试,我需要帮助来理解如何继续使用它,而不用害怕数组。要使此函数正常工作,应将6个文本值存储到DB中的表中。 我认为我的主要问题是使用foreach($_POST['title'] as $idx => $title)来使事情起作用,但我可能是错的..再次感谢。 我看了一些示例,但仍然无法使我的代码正常工作或完全理解。

谢谢

HTML代码

<form method="post" name="add_record" id="add_record" action="EnterNewAlbum.php">
  <input type="text" name="title[]" value="title" size="32" required="required" />
  <input type="text" name="artist[]" value="artist" size="32" required="required" />
  <input type="text" name="country[]" value="country" size="32" required="required" />
  <input type="text" name="company[]" value="company" size="32" required="required" />
  <input type="text" name="price[]" value="200" size="32" required="required" />
  <input type="text" name="year[]" value="100" size="32" required="required" />
<br /><br />
<input type="submit" action="EnterNewAlbum.php"  name="add_record" id="add_record" value="Add" />
</form>

PHP代码

<?php

if(isset($_POST['add_record'])) {
include 'dbconnection.php'; 
$con = mysqli_connect($dbsrvname, $dbusername, $dbpassword, $dbname);
echo "button press test";

foreach($_POST['title'] as $idx => $title) {

$add_entry = mysqli_query($con , "INSERT INTO albumsID (`title`,`artist`,`country`,`company`,`price`,`year`)  VALUES ('".$title."', '" . $_POST['artist'][$idx] . "',  '" . $_POST['country'][$idx] . "' ,  '" . $_POST['company'][$idx] . "' ,  '" . $_POST['price'][$idx] . "'  ,  '" . $_POST['year'][$idx] . "'     ");


}


}


?>

您希望在这里对您有所帮助:

<?php 
    if(isset($_POST['title'])) {
        $title = $_POST['title'];

        foreach ($title as $key => $value) {

            //FOR YOUR CHECKING PURPOSE
            echo $value.'-'.
            $_POST['title'][$key].'-'.
            $_POST['artist'][$key].'-'.
            $_POST['country'][$key].'-'.
            $_POST['company'][$key].'-'.
            $_POST['price'][$key].'-'.
            $_POST['year'][$key];

            //ADD QUERY   
            $title_data = $_POST['title'][$key]; 
            $artist_data = $_POST['artist'][$key];
            $country_data = $_POST['country'][$key];
            $company_data = $_POST['company'][$key];
            $price_data = $_POST['price'][$key];
            $year_data = $_POST['year'][$key];

            $your_query = mysqli_query($con , "INSERT INTO albumsID (`title,artist,country,company,price,year`)  
            VALUES ('".$title_data."', '".$artist_data."', '".$country_data."', '".$company_data."', '".$price_data."', '" .$year_data. "'");
        }

    }
?>

对于“文本”类型的每个输入,您只能提交一个值,因此尝试将其存储在数组中并没有任何意义。 如果使用相同的数组名称命名多个文本输入,则可以提交数组;否则,可以提交数组。 例如:

<input type="text" name="values[]" value="first" />
<input type="text" name="values[]" value="second" />

但这似乎并不适合您的情况。

正确的代码可以是:

HTML:

<form method="post" name="add_record" id="add_record" 

action="EnterNewAlbum.php">
  <input type="text" name="title" value="title" size="32" required="required" />
  <input type="text" name="artist" value="artist" size="32" required="required" />
  <input type="text" name="country" value="country" size="32" required="required" />
  <input type="text" name="company" value="company" size="32" required="required" />
  <input type="text" name="price" value="200" size="32" required="required" />
  <input type="text" name="year" value="100" size="32" required="required" />
<br /><br />
<input type="submit" action="EnterNewAlbum.php"  name="add_record" id="add_record" value="Add" />
</form>

PHP:

<?php

if(isset($_POST['add_record'])) {
echo "button press test";


include 'dbconnection.php'; 
$con = mysqli_connect($dbsrvname, $dbusername, $dbpassword, $dbname);
$add_entry = mysqli_query($con , "INSERT INTO albumsID (`title,artist,country,company,price,year`)  VALUES ('".$_POST['title']."', '" . $_POST['artist'] . "',  '" . $_POST['country'] . "' ,  '" . $_POST['company'] . "' ,  '" . $_POST['price'] . "'  ,  '" . $_POST['year'] . "'     ");
}
?>

值数组只能通过具有multiple =“ multiple”属性的select或具有以下模板的复选框提交:

<input type="checkbox" name="checkboxes_results[]" value="value1" />
<input type="checkbox" name="checkboxes_results[]" value="value2" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM