使用相同(输入)名称发布多个输入文本值

时间:2013-01-22 23:52:32

标签: php

我使用php insert进入Microsoft SQL表,下面是我的代码:

$server = "**/**,1433";
$connectionInfo = array( "Database"=>"***", "UID"=>"**", "PWD"=>"******" );
$conn = sqlsrv_connect( $server, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}
if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {

$sql = "SELECT Item.HQID, Item.ItemLookupCode, Item.Description, Item.ExtendedDescription, Item.SalePrice, Item.Price, Item.CategoryID FROM Item WHERE Item.HQID = '$check'";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {

 $html_table = '<table border="1" cellspacing="0" cellpadding="2">';

 $html_table .= '<form method="post" action="upload.php"><tr><td width="350" align ="center">' .$row['Description']. '</td><td width="350" align ="center">' .$row['ExtendedDescription']. '</td><td width="130" align="center">' 

.$row['ItemLookupCode']. '<td width="100" align="center">' .$row['SalePrice']. '</td><td width="100" align="center">' .$row['Price']. '</td><td width="200" align="center"><input 

type="text" size="24" name="stitle"></td><td width="100" align="center"><input type="text" size="8" name="wprice"></td><td width="120" align="center"><input type="text" size="10" name="scategory"></td><td width="220" align="center"><input 

type="text" size="28" name="sbody"></td></tr>';
$html_table .= '</table>'; 
echo $html_table;  
}
}
}
}
?>
<input type="submit" value="Upload this page" ></form>

我有<input> name="stitle",我希望 PHP 代码从每个<input>获取值,但目前它只从中获取值第一个<input>。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:5)

您的帖子格式很糟糕,但我认为您正在寻找数组符号。

你可以做出类似的事情:

<input type="text" size="24" name="stitle[]">

$_POST数组字段stitle是一个包含提交表单后所有值的数组。

答案 1 :(得分:1)

好的,一个简单的表单示例,忽略所有额外的语法标记

<pre>
<?php print_r($_POST); ?>
</pre>

<form method="POST" action="">
    <input type="text" size="24" name="stitle[]" />
    <input type="text" size="24" name="stitle[]" />
    <input type="text" size="24" name="stitle[]" />
</form>

现在,您输入这三个文本框的所有内容都将被返回,并且可以在“$ _POST”变量中访问。

答案 2 :(得分:0)

如果您不想使用数组样式输入[]并且您可以控制字段的数量,那么您还可以执行以下操作:

for($f=0; $f < 5; $f++){ 

 echo '<input type="text" name="foo_'.$f.'">';

}

/*-----------server-side------------*/

for($f=0; $f < 5; $f++){ 

 if(isset($_POST['foo_'.$f])){
  //do something
 }

}

答案 3 :(得分:0)

您可以将此简单代码用于多个简单输入

$stitle=$_POST['stitle'];
for($j=0;$j<count($stitle);$j++)
{
    echo   $stitle[$j]."<br>";
}