我正在尝试创建一个只显示一个文本字段和一个按钮的表单,但是当我们点击该按钮时,它会再显示一个文本字段和一个按钮,当我们点击该按钮时它会显示三个文本字段和一个按钮,这个最新的按钮将提交表单....是否可能?.....如果它然后请指导我....这是我的代码......
<div id="envelope">
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<center><h1>Edit an existing generic drug</h1></center><br>
<label>Generic Drug Name</label>
<select name = "position" type = "option">
<?php
$query = "SELECT * FROM brand_generic.generic_drug WHERE 1";
$result = mysqli_query($connection, $query);
if(!$result){
die("Database query failed.");
}?><?php
while ($row = mysqli_fetch_assoc($result)) {?>
<option value = "<?php echo $row['generic_drug_name'] ?>"
<?php echo((isset($_POST['position']) && $_POST['position'] == $row['generic_drug_name']) ? 'selected="selected"' : ' ');?>
><?php echo $row['generic_drug_name'];?></option>
<?php }
?>
</select>
<input type="submit" name = "edit" value="Edit" id="submit"/>
<?php
if(isset($_POST['edit'])){ ?>
<label>New Name</label>
<input type="text" name="drug_name" value="<?php echo $_POST['position']; ?>" width="100px;"/>
<input type="submit" name = "submit" value="Submit" id="submit"/>
<?php
if(isset($_POST['submit'])){
$edited_drug_name = $_POST['drug_name'];
echo "Hello world";
}
}
?>
</form>
</div>
当我点击第一个按钮时,它显示另一个文本字段和按钮,但当我点击新按钮时,它不会显示消息...请帮助
答案 0 :(得分:0)
jquery .append应该有所帮助。
这是一个例子。
<script type="text/javascript">
$( function() {
$("#button").click( function(){
var textarea = $("<textarea></textarea>").prop({
name: 'ExampleName'
style: ''
}).addClass( 'classesHere' );
$("form").append(textarea);
})
})
</script>
答案 1 :(得分:0)
我会从一个有一个textarea的基本表单开始。请记住,ID不能以数字开头,因此您可能需要提出创意命名约定。
<form id="myform" action="foo" method="post">
<fieldset>
<p><label for="comments0">Comments</label>
<textarea id="comments0" name="comments" cols="11" rows="4"></textarea></p>
<p><a id="addItem" href="#">+ Add another item</a></p>
</fieldset>
<fieldset>
<input type="submit" value="Submit" />
</fieldset>
您可以使用jQuery动态创建HTML:
var i = 1;
$('#addItem').click(function(event) {
var markup = '<p><label for="comments' + i + '">Comments<label><textarea id="comments' + i + '" name="comments" cols="11" rows="4" /></textarea></p>';
$(this).before(markup);
i++;
event.preventDefault();
});
然后在你的php文件中,你可以这样做:
<?php
for ($i=0; $i<$_POST['comments'].length; $i++) {
// handle each text-area accordingly.
}