![](/img/trans.png)
[英]POST / GET compared to submitting form to action page and loading result
[英]jQuery - loading form(s), submitting POST, retrieving result without refresh
首先,我已经对此进行了广泛的研究,并且无法成功应用我找到的任何答案,至少以我想要的方式。 我想我快要走了,但我可能要离开...
在这里提出了类似的问题: 使用ajax在div中提交表单,在不刷新的情况下在div中返回php
我实质上是在使用4个div,而div 1则提供了添加,编辑或删除用户的选择。 div 2是容器中的新行,选择“添加”时,加载的文件在该行内创建2列(两个div),第一列(div 3)带有下拉菜单,询问您要添加多少个用户。 答案将发送到另一个PHP文件,该文件使用FOR循环创建正确数量的表单,然后应将其加载到div 4中(在随附的代码末尾将其标识为“ forms”)。
PHP一切正常,并且将初始下拉列表加载到div 2中也可以正常工作,但是每次我单击Submit时,它都不会执行任何操作,并且会擦除整行(包括该下拉列表(带有下拉列表的div 3,以及表格的div 4)如果我将“ num”表格上的操作更改为实际的php文件,则会将表格加载到新页面上,而不是目标div中……我认为这是相关代码。
controls.php
<?php
require_once 'header.php';
if ($loggedin == true && ($user->roles == 1 || $user->roles == 2)) {
echo <<<_END
<script src="http://malsup.github.com/jquery.form.js"></script>
<script src='https://code.jquery.com/jquery.js'></script>
<script src='js/bootstrap.min.js'></script>
<script>
$(document).ready(function(){
$('#addUsr').click(function(){
$('#controls').load('add.php', function(){
});
});
$('#editUsr').click(function(){
$('#controls').load('edit.php', function(){
});
});
$('#updateUsr').click(function(){
$('#controls').load('update.php', function(){
});
});
});
</script>
<hr class='small-divider'></hr>
<div class='row'>
<div class='col-md-8'>
<h2>Welcome to the User Control Panel</h2>
<p>To use this feature, please choose from the options to the right, and the appropriate form will appear below.</p>
</div>
<div class='col-md-4' id='ctrlwho'>
<h4>What do you want to do?</h4>
<p><button class='btn btn-md btn-primary' id='addUsr' type='button'>Add new</button></p>
<p><button class='btn btn-md btn-primary' id='editUsr' type='button'>Edit current</button></p>
<p><button class='btn btn-md btn-primary' id='updateUser' type='button'>Update Oficers and Committee Heads</button></p>
</div>
</div>
<div class='row' id='controls'>
</div>
</div>
_END;
}
?>
add.php
<?php
echo <<<_END
<script>
$("#num").submit(function(){
$.ajax({
url: 'add.forms.php',
type: 'POST',
data: $("#num").serialize(),
success: function(data) {
$("#forms").empty();
$("#forms").append(data);
}
});
return false;
});
</script>
<div class='col-md-3' id='numForm'> // ineloquently called div-3 in my post
<p>How many users do you want to add?</p>
<p><form name='num' id='num' method='POST' action=''>
<select name='number' size='1' id='select-1'>
<option value=1>1</option>
<option value=2>2</option>
<option value=3>3</option>
<option value=4>4</option>
<option value=5>5</option>
<option value=10>10</option>
<option value=15>15</option>
<option value=20>20</option>
<option value=30>30</option>
<option value=50>50</option>
</select>
<input type='submit' value='This Many' />
</form>
</div>
<div class='col-md-9' id='forms'> </div> // ineloquently called div-4 above
_END;
?>
我想这是相对简单的事情,但是当这里有这么多可用资源时,继续努力似乎很荒谬。 在此先感谢您的帮助!
不知道这是否是问题,但是:
您应该删除此行的最后一个括号:
$("#num").submit(function()({
应该只是:
$("#num").submit(function(){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.