php - 页面加载时如何附加动态输入字段?
问题描述
我已经尝试过这种策略->
<script type="text/javascript">
$(document).ready(function(){
var countPos=0;
var add_button=$('#add_position');
var wrapper=$('#position_fields');
window.console && console.log('Document ready called');
//When the user clicks on the add button then It inserts these input fields
$(add_button).click(function(event){
// http://api.jquery.com/event.preventdefault/
event.preventDefault();
if ( countPos >=9 ) {
alert("Maximum of nine position entries exceeded");
return;
}
countPos++;
window.console && console.log("Adding position "+countPos);
$(wrapper).append(
'<div id="position'+countPos+'"> \
<p>Year: <input type="text" name="year'+countPos+'" value="" /> \
<input type="button" value="-" \
onclick="$(\'#position'+countPos+'\').remove();return false;"></p> \
<textarea name="desc'+countPos+'" rows="8" cols="80"></textarea>\
</div>');
});
});
这是我的 html 段->
<div class="container">
<h1>Ashiful Islam Prince's Resume Registry</h1>
<h1>Editing Profile for UMSI</h1>
<?php
if(isset($_SESSION['profile_error'])) {
$error = $_SESSION['profile_error'];
unset($_SESSION["profile_error"]);
echo '<span class="text-danger">';
echo $error;
echo '</span>';
}
?>
<form method="post">
<p>First Name:
<input type="text" name="first_name" value="<?php
echo $firstName;
?>"
></p><br>
<p>Last Name:
<input type="text" name="last_name" value="<?php
echo $lastName;
?>"</p>
<p>Email:
<input type="text" name="email" value="<?php
echo $Email;
?>"</p><br>
<span class="text-danger">
<?php
if(isset($email_sign_error))
echo $email_sign_error;
?>
</span>
<p>Headline:<br/>
<input type="text" name="headline" value="<?php
echo $Headline;
?>"</p>
<p>Summary:<br/>
<textarea name="summary" rows="8" cols="80">
<?php
echo $Summary;
?>
</textarea>
<p>Position : <input type="submit" class="add_position" id="add_position"
name="addPosition" value="+">
<div class="position_fields" id="position_fields">
</div>
<p>
<input type="submit" value="Save" name="btn" class="btn btn-primary">
<input type="submit" name="cancel" value="Cancel">
</p>
</form>
</div>
</div>
</div>
我遇到的问题:在上面的这个程序中,当用户单击添加按钮时,我可以显示输入字段。但是我想在页面加载时显示这些字段意味着不点击我想打印这些字段的添加按钮。我怎样才能去我的目的地?
这是我从数据库中获取数据的 php 代码:
<?php
try{
//Need to make a connection
$con=new PDO("mysql:host=localhost;dbname=courseraassignment","root","");
$statement=$con->prepare("select * from position
where profile_id=:profile_id");
$statement->execute(array(
':profile_id'=>$_REQUEST['profile_id']
));
foreach($statement as $row){
echo $row['year'];
echo $row['description'];
echo "<br>";
}
}catch(PDOException $e){
echo "error".$e->getMessage();
}
?>
从这段代码中,我从位置表中获取年份和描述,并希望在页面加载时将这些值显示给这些输入字段。
解决方案
下面的代码在页面加载时创建字段并且当用户单击添加按钮时尝试这个如果有任何错误让我知道
<script type="text/javascript">
$(document).ready(function(){
var countPos=0;
var add_button=$('#add_position');
var wrapper=$('#position_fields');
window.console && console.log('Document ready called');
//When the user clicks on the add button then It inserts these input fields
function addField(event){
event.preventDefault();
if ( countPos >=9 ) {
alert("Maximum of nine position entries exceeded");
return;
}
countPos++;
window.console && console.log("Adding position "+countPos);
$(wrapper).append(
'<div id="position'+countPos+'"> \
<p>Year: <input type="text" name="year'+countPos+'" value="" /> \
<input type="button" value="-" \
onclick="$(\'#position'+countPos+'\').remove();return false;"></p> \
<textarea name="desc'+countPos+'" rows="8" cols="80"></textarea>\
</div>');
}
$(add_button).click(function(event){
addField();
});
addField();
});
和html会是这样的
<div class="container">
<h1>Ashiful Islam Prince's Resume Registry</h1>
<h1>Editing Profile for UMSI</h1>
<?php
if(isset($_SESSION['profile_error'])) {
$error = $_SESSION['profile_error'];
unset($_SESSION["profile_error"]);
echo '<span class="text-danger">';
echo $error;
echo '</span>';
}
?>
<form method="post">
<p>First Name:
<input type="text" name="first_name" value="<?php
echo $firstName;
?>"
></p><br>
<p>Last Name:
<input type="text" name="last_name" value="<?php
echo $lastName;
?>"</p>
<p>Email:
<input type="text" name="email" value="<?php
echo $Email;
?>"</p><br>
<span class="text-danger">
<?php
if(isset($email_sign_error))
echo $email_sign_error;
?>
</span>
<p>Headline:<br/>
<input type="text" name="headline" value="<?php
echo $Headline;
?>"</p>
<p>Summary:<br/>
<textarea name="summary" rows="8" cols="80">
<?php
echo $Summary;
?>
</textarea>
<p>Position : <input type="button" class="add_position" id="add_position"
name="addPosition" value="+">
<div class="position_fields" id="position_fields">
<?php foreach($your_data as $count => $data){ ?>
<div id="position'+count+'">
<p>Year: <input type="text" name="year'+count+'" value="" />
<input type="button" value="-" onclick="$(\'#position'+count+'\').remove();return false;"></p>
<textarea name="desc'+count+'" rows="8" cols="80"></textarea>
</div>
<?php } ?>
</div>
<p>
<input type="submit" value="Save" name="btn" class="btn btn-primary">
<input type="submit" name="cancel" value="Cancel">
</p>
</form>
</div>
</div>
</div>
推荐阅读
- python-3.x - 如何在python3中显示图像
- excel - 以编程方式向 Power Query 使用的 DSN 连接提供凭据
- java - 使用 Java 关闭 iOS 键盘
- c++ - 从 constexpr 干净地报告编译时错误,没有例外?
- javascript - Three.js 从 mouseMove 变为随机移动
- appium - iOS sims 挂断会话初始化
- swift - 将旧版 KVO 转换为 Swift 4
- php - 如何修改继续阅读链接?
- hadoop - 如何将 Hive 表导出到包含标题的 CSV 文件中?
- php - 如何创建一个反函数以雄辩地保存在我的 mysql 中?