繁体   English   中英

页面加载时如何附加动态输入字段?

[英]How can I append dynamic input fields when the page loads?

我已经尝试过这个策略->

<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>

暂无
暂无

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

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