如果我的回答太基本,请见谅。很难判断多少是太多,我宁愿给你太多太多的信息,也不愿给你太多的信息。
当 jQuery 使用 .load() 方法从服务器加载另一个文件时,新代码将被放入 DOM 并成为当前页面的一部分。因此,您不需要将信息从一个 HTML 文档传输到另一个文档——它们已集成到单个 DOM 中。
但是,要检测注入的HTML 发生的事件触发器(例如检测按钮单击),您必须使用该.on()
方法。
接下来,您似乎想在用户完成字段编辑后对数据执行某些操作。您可以将#centerContent DIV 包装在<form>
标签内,如下所示:
<form action="somephpfile.php" method="POST">
Document Title:<br />
<input type="text" name="theVarNameThatGetsSubmitted" /><br />
Document Text:<br />
<input type="text" name="formDocText"><br />
<br />
<input type="submit" value="Click When Done" />
</form>
当用户单击“完成时单击”按钮时,用户键入的任何内容都将被发布到名为“somephpfile.php”的 PHP 文件中,并且用户的视图也将转移到该文档。
在“somephpfile.php”文件中,您可以通过从 POST 变量中检索用户数据来获取它:
<?php
$titre = $_POST['theVarNameThatGetsSubmitted'];
$text = $_POST['formDocText'];
//Now do what you want, and show the user what you want
但是,提交数据的更好方法是通过 AJAX。一开始可能听起来很困难,但 AJAX 实际上很容易。以下是 AJAX 与使用旧的 FORMS 方法相比的一些优点:
- AJAX 不会将用户发送到任何地方。用户停留在同一页面上。
- AJAX 不刷新屏幕。一切都在后台无形中发生。
- AJAX 更容易。
下面是一些展示 AJAX 工作原理的基本示例。仅第一个就足够了:
这是您的示例,已重构为使用 AJAX(完全工作):
HTML - 索引.HTML:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<style>
#centerContent{min-height:200px; width:70%; margin:50px auto 0px auto; background-color:lightgrey;}
</style>
<script type="text/javascript">
$(document).ready(function() {
$('#left_menu').click(function() {
//var stuff = '<h2>Your Document</h2>Title: <input type="text" id="doctitle" /><br />Document Text: <input type="text" id="doctext" /><br /><br /><input type="button" id="done" value="Done Editing" />';
//$('#centerContent').html(stuff);
$('#centerContent').load('second_html_doc.html');
});
$(document).on('click', '#done', function() {
var ti = $('#doctitle').val();
var tx = $('#doctext').val();
alert('Now we can save this data into another file: ['+ti+'] ['+tx+']');
$.ajax({
type: 'POST',
url: 'your_php_file.php',
data: 'theTitle=' +ti+ '&theDocText=' +tx,
success: function(whatigot) {
//alert('Server-side response: ' + whatigot);
$('#centerContent').html(whatigot);
} //END success fn
}); //END $.ajax
});
}); //END $(document).ready()
</script>
</head>
<body>
<a id="left_menu" href="#">Left Menu Item</a>
<div id="centerContent">Hello</div>
</body>
</html>
HTML #2,另存为:second_html_doc.html
<h2>Your Document</h2>
Title: <input type="text" id="doctitle" /><br />
Document Text: <input type="text" id="doctext" /><br />
<br />
<input type="button" id="done" value="Done Changing Stuff" />
PHP 处理文件。另存为:your_php_file.php
<?php
$t = $_POST['ti'];
$x = $_POST['tx'];
$r = '<h1>Info Received by PHP</h1>';
$r .= 'Document Title: ' . $t . '<br /><br />';
$r .= 'Document Text : ' . $x . '<br /><br />';
echo $r;