PHP -处理多个输入的数据
PHP - process data from multiple input
嘿,伙计们,我正在使用这个脚本使动态webform(添加新的输入,如果需要)。
<form method="post" action="">
<table class="dd" width="100%" id="data">
<tr>
<td>Vin</td>
<td width="99%"><input name="vin1" id="vin1" type="text" /></td>
</tr>
</table>
<input name="sub" type="submit" value="Submit values"/>
<input type="button" id="addnew" name="addnew" value="Add new item" />
<input type="hidden" id="items" name="items" value="1" />
</form>
<?php var_dump ($_POST); ?>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type='text/javascript'>
//<![CDATA[
$(document).ready(function() {
var currentItem = 1;
$('#addnew').click(function(){
currentItem++;
$('#items').val(currentItem);
var strToAdd = '<tr><td>Vin</td><td width="17%"><input name="vin'+currentItem+'" id="vin'+currentItem+'" type="text" /></td></tr>';
$('#data').append(strToAdd);
});
});
//]]>
</script>
它工作得很好,并且还用数字命名每个输入,所以在我的情况下是:vin1, vin2, vin3…问题是我不知道如何告诉PHP处理这些数据。因为我用的是:
public function fetchByVinEvidence() {
$success = false;
try{
$con = new PDO( DB_HOST, DB_USER, DB_PASS );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM evidence_calculations WHERE vin = :vin LIMIT 5";
$stmt = $con->prepare( $sql );
$stmt->bindValue( "vin", $this->vin, PDO::PARAM_STR );
$stmt->execute();
while ($row = $stmt->fetch()){
echo "<tr>";
echo "<td>#4</td>";
echo "<td>".$row['street']."</td>";
echo "<td>".$row['city']."</td>";
echo "<td>".$row['claim_number']."</td>";
echo "<td>".$row['country']."</td>";
echo "<td><a href ='"javascript:void(0)'" onclick = '"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block''">detail</a></td>";
echo "</tr>";
}
}catch(PDOExeption $e){
echo $e->getMessage();
echo $con->errorInfo();
}
return $success;
}
对于单个输入,但我如何编辑它的多个输入,我是新的PHP OOP,所以我真的不知道如何做出适当的周期,如何限制一切,不让用户发送数百万的东西到数据库一次等等。你们能帮我一点编辑我的PHP脚本,以便能够从多个形式的数据工作?
谢谢!
不需要对输入名称进行编号,只需将[]
附加到vin
的末尾,当提交时php将自动获取所有具有该名称的输入并将每个值加载到数组
<input name="vin[]" type="text" />
<input name="vin[]" type="text" />
<input name="vin[]" type="text" />
<input name="vin[]" type="text" />
PHP public $vin = array();
public function __construct( $data = array() ) {
if( isset( $data['vin'] ) ) {
foreach($data['vin'] as $index=>$vin){
$this->vin[$index] = stripslashes( strip_tags( $vin ) );
}
}
}
//..
$whereQuery = array();
foreach($this->vin as $index=>$vin){
$whereQuery[] = "vin= :vin".$index;
}
$sql = "SELECT * FROM evidence_calculations WHERE ".implode(" OR ",$whereQuery)." LIMIT 5";
//...
foreach(array_keys($this->vin) as $index){
$stmt->bindValue( "vin".$index, $this->vin[$index], PDO::PARAM_STR );
}
相关文章:
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何读取表单中的输入数据
- 从MySQL数据库中获取输入数据需要两次页面刷新
- 从html表中的输入数据创建图表
- 如何使用输入数据加载新的extjs图表
- Node.js输入数据事件停止
- 如何将输入数据(许多数据)添加到同一页面的下表中
- 如何使用asp.net中的Web服务从clintside输入数据
- AngularJS自定义过滤器调用了两次,并在第二次调用时删除输入数据
- Javascript:在表单中输入数据时,提交按钮不处于活动状态
- 在动态输入数据的下拉菜单中设置默认值
- d3.js强制可折叠图-输入数据是对象数组
- 如何使用HTML表显示存储在数组中的用户输入数据
- 如何使用带按钮的表链接到HTML页面,并让它使用AngularJS从Firebase输入数据
- GAS - 等到用户输入数据后,功能才会继续
- 为什么它说输入数据数组的格式不正确 jqchart.
- 将输入数据保存到全局变量
- 当输入ng-model是ngRepeat变量时,如何从输入数据中获取
- 触发 html5 输入数据列表下拉列表显示
- 如何在 AJAX 请求 (Rails) 之间保留表单输入数据