我的Html代码如下:
<form name="creditAssessPage2" id="basicform" method="post" action="post.php" enctype="multipart/form-data">
<tr>
<td><input type="text" name="finanIns1" id="finanIns1" value=""></td>
<td id="balance"><input type="number" name="balance1" id="balance1" value="" min="0"></td>
<td id="MonthyComm"><input type="number" name="monthlyComm1" id="monthlyComm1" value="" min="0"></td>
</tr>
<tr>
<td><input type="text" name="finanIns2" id="finanIns2" value=""></td>
<td id="balance"><input type="number" name="balance2" id="balance2" value="" min="0"></td>
<td id="MonthyComm"><input type="number" name="monthlyComm2" id="monthlyComm2" value="" min="0"></td>
</tr>
<tr>
<td><input type="text" name="finanIns3" id="finanIns3" value=""></td>
<td id="balance"><input type="number" name="balance3" id="balance3" value="" min="0"></td>
<td id="MonthyComm"><input type="number" name="monthlyComm3" id="monthlyComm3" value="" min="0"></td>
</tr>
<tr>
</form>
我的post.php代码如下:
require_once 'db/dbfunction.php';
require_once 'db/dbCreditAssessment.php';
session_start();
$con = open_connection();
$finanIns1 = $_POST['finanIns1'];
$balance1 = $_POST['balance1'];
$monthlyComm1 = $_POST['monthlyComm1'];
$finanIns2 = $_POST['finanIns2'];
$balance2 = $_POST['balance2'];
$monthlyComm2 = $_POST['monthlyComm2'];
$finanIns3 = $_POST['finanIns3'];
$balance3 = $_POST['balance3'];
$monthlyComm3 = $_POST['monthlyComm3'];
addemployementdetails($con,$finanIns1,$balance1,$monthlyComm1);
addemployementdetails($con,$finanIns2,$balance2,$monthlyComm2);
addemployementdetails($con,$finanIns3,$balance3,$monthlyComm3);
close_connection($con);
我的dbCreditAssessment.php代码如下:
function addemployementdetails($con,$finanIns1,$balance1,$monthlyComm1){
$query = "insert into employementdetails(finance,balance,monthlycomm)
values('$finanIns1','$balance1','$monthlyComm1')";
//echo "{$sqlString}";
$insertResult = mysqli_query($con, $query);
if($insertResult){
echo " Applicant Detail Added !<br />";
echo "<a href='index.php'>Back to Home</a>";
}
else {
echo " Error !";
echo "{$query}";
//header('Location: post.php');
}
}
此功能将重复3次。 实际上,还有很多相同的字段要键入。例如finanIns1,finanIns2,finanIns3,finanIns4,finanIns5等。
有没有办法使用循环来替换这种插入数据的方式? 此外,如果字段为空,则不会将数据插入Mysql
答案 0 :(得分:2)
首先,计算$ _POST数组中finanIns的出现次数。然后使用&#39; for&#39;函数循环它。
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ade4ad">
<TextView
android:id="@+id/first"
android:layout_width="90dp"
android:layout_height="40dp"
android:background="#000"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent" />
<TextView
android:id="@+id/second"
android:layout_width="90dp"
android:layout_height="40dp"
android:background="#fff"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@+id/first"
app:layout_constraintLeft_toLeftOf="@+id/first"
app:layout_constraintRight_toRightOf="@+id/first" />
</android.support.constraint.ConstraintLayout>
请记住使用mysqli_real_escape_string和trim来清理这些输入。将您的代码更改为:
$count = count(preg_grep("/^finanIns[\d]*/", array_keys($_POST)));
for($i = 1; $i <= $count; $i++){
$finanIns = $_POST['finanIns'.$i];
$balance = $_POST['balance'.$i];
$monthlyComm = $_POST['monthlyComm'.$i];
addemployementdetails($con,$finanIns,$balance,$monthlyComm);
}
答案 1 :(得分:0)
这可能有所帮助。
for($i = 1 ; $i < 4 ; $i++){
$finanIns = $_POST['finanIns'.$i];
$balance = $_POST['balance3'.$i];
$monthlyComm = $_POST['monthlyComm3'.$i];
if($finanIns != "" && $balance != "" && $monthlyComm != ""){
addemployementdetails($con,$finanIns,$balance,$monthlyComm);
}
}
另一个代码段
如果输入的数量是用户需要的,那么您需要添加一个隐藏的输入,该输入包含包含finanIns,balance,monthlyComm输入的表行数。
你可以把name =&#34; finanIns []&#34;如果您有3个或更多输入。如果是,那么只需使用它并访问该值为$ _POST [&#39; finanIns&#39;] [$ i]
for($i = 1 ; $i < $_POST['number_of_inputs'] ; $i++){
$finanIns = $_POST['finanIns'][$i];
$balance = $_POST['balance'][$i];
$monthlyComm = $_POST['monthlyComm'][$i];
if($finanIns != "" && $balance != "" && $monthlyComm != ""){
addemployementdetails($con,$finanIns,$balance,$monthlyComm);
}
}
答案 2 :(得分:0)
如果你知道你拥有的字段数(1,2,3)你可以做的是php中的for循环:
// make a loop to go according to the number of fields you have
for($i=1;$i<=3;$i++){
// assign the fields value to the variables
$finanIns = $_post['finanIns'.$i];
$balance = $_post['balance'.$i];
$monthlyComm = $_post['monthlyComm'.$i];
//check if fields are empty, if not, insert to mysql
if($finanIns != "" && $balance != "" && $monthlyComm != ""){
addemployementdetails($con,$finanIns,$balance,$monthlyComm);
}
}
请告诉我它是否正常工作:)