Php 没有重定向的最简单表单提交?
因此,我一直在这个项目上拼命工作,可能是因为我尝试了艰难的方式:)我一直在尝试将下面的动态PHP表单转换为提交相同的信息,但是通过AJAX,我没有经验,但我想在不离开页面的情况下提交 在准备电话采访潜在程序员时,我研究了“每个PHP程序员都应该知道的事情”(Things everyPHP Coder Should known)(),并介绍了一种使用远程脚本和iframe完成相同任务的不同方法。意识到可能有几十种方法可以做到这一点,那么采用下面的表单并在不离开页面的情况下提交它的“最佳”方法是什么?既然我最了解PHP,那么有哪个更适合我呢,还是应该继续使用AJAX呢Php 没有重定向的最简单表单提交?,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,因此,我一直在这个项目上拼命工作,可能是因为我尝试了艰难的方式:)我一直在尝试将下面的动态PHP表单转换为提交相同的信息,但是通过AJAX,我没有经验,但我想在不离开页面的情况下提交 在准备电话采访潜在程序员时,我研究了“每个PHP程序员都应该知道的事情”(Things everyPHP Coder Should known)(),并介绍了一种使用远程脚本和iframe完成相同任务的不同方法。意识到可能有几十种方法可以做到这一点,那么采用下面的表单并在不离开页面的情况下提交它的“最佳”方法是什么
<form action="functions.php?do=save" method="POST" id="saveSettings">
<table width=100%>
<tr><th>Setting</th><th>Value</th><th>Active</th></tr>
<?
include 'db.php';
$i=0;
foreach($db->query('SELECT * from settings') as $row) {
echo ($i % 2)?'<tr class="odd">':'<tr class="even">';
print_r("<td width=200>" . $row[1] . "</td>
<td><input type=\"textbox\" name=\"" . $row[1] . "[]\" value=\"" . $row[2] . "\"></td>
<td><input type=\"hidden\" name=\"" . $row[1] . "[1]\" value=\"INACTIVE\"> "); //set value so it never passes NULL
if ($row[3] == "ACTIVE"){
print_r("<input type=\"checkbox\" name=\"" . $row[1] . "[1]\" value=\"ACTIVE\" checked=\"true\"></td></tr>");
}
else{
print_r("<input type=\"checkbox\" name=\"" . $row[1] . "[1]\" value=\"ACTIVE\"></td></tr>");
}
$i++;
}
?>
</tbody>
</table>
<input type="submit" value="Save Settings">
</form>
设置值激活
它非常简单,实际上,您只需要执行以下jQuery:
$('form').on('submit', function(){
var $this = $(this);
$.ajax({
type: $this.prop('method'),
url: $this.prop('action'),
data: $this.serialize(),
success: function(data){
//do something with the return of the php script
}
});
return false; //prevent the form from causing the page to refresh
});
用于将表单转换为URL编码的文本字符串。这使得在php脚本中获取值变得非常简单,因为考虑到上面表单的结构,任何东西都不应该改变。真是太简单了!我无法告诉你我花了多少天的时间慢慢前进,但始终没有达到目标,但你可以查看我的帐户问题历史记录,了解我的想法:)非常感谢。