我正在尝试在php中提交表单,但由于我想要的性质,我需要页面不要进入下一个我只是想让它提交数据并刷新当前页面或其他什么,当前它提交数据并进入第2页我不想要我只需要提交数据并留在当前页面,如果可能的话!
//第1页代码
<center>
<h1>What Is Jacob Dailey Doing?</h1>
<form method="post" action="jacob_dailey.php">
<select name="baby_status">
<option value="playing">Playing</option>
<option value="awake">Awake</option>
<option value="sleeping">Sleeping</option>
</select>
<br />
<input type="submit" value="Submit"/>
</form>
</center>
//第2页代码
<?php
if (isset($_POST['baby_status'])) {
$baby = $_POST['baby_status'];
setcookie("baby_status", $baby, time() + 31556926, '/'); // Data will Store For 1 Year
header('Location: ' . $_SERVER['PHP_SELF']);
}
$status = $_COOKIE['baby_status'];
echo '<center> <h1>Baby Jacob Dailey Is Currently ' . ucwords($status) . '</h1>';
if ($status == "playing") {
echo '<img src="http://cdn.sheknows.com/articles/2013/02/baby-playing-with-blocks.jpg"/>';
}
elseif ($status == "awake") {
echo '<img src="http://www.westheimphoto.com/lightbox/gallery/TaiwanStockPhotos/TWNhw1221.jpg"/>';
}
elseif ($status == "sleeping") {
echo '<img src="http://www.babycare.onlymyhealth.com/imported/images/neonatal/2012/July/19_Jul_2012/6-Months-Old-ssl.jpg"/>';
}
echo '</center>';
?>
代码不应该同样重要,但我只需要它,所以当我点击第1页上的提交时,它会更新第2页上的信息,但不会将我带到第2页。
干杯!
答案 0 :(得分:0)
行动=&#34; jacob_dailey.php&#34;在您的表单中将您带到该页面,您可以将您的PHP代码粘贴到主页面,并将操作替换为&#34;&#34;或者您将搜索AJAX并了解如何使用
答案 1 :(得分:0)
您的表单可以自行提交。只需在action="xyz"
中完全保留(整个action=...
属性),或者在引号之间命名包含表单的页面。
然后当您加载页面时,检查$ _POST或$ _GET数组(取决于方法)以查看是否已按下提交按钮或是否有人刚刚导航到该页面。 (您将要提交按钮name="foo"
。)
答案 2 :(得分:0)
您可以使用jQuery.ajax()。这里的例子: http://www.formget.com/form-submission-using-ajax-php-and-javascript/
此示例使用数据库,但您可以使用php文件返回值并在javascript中从响应中读取它们。不要对表单添加任何操作,但在提交按钮上启用单击事件处理程序以启用该功能。
此处我的例子:http://dev.ossipesonen.fi/alkoholilaskuri/ 一个非常简单的表单,您插入值,使用$ _POST将它们传递给PHP,然后计算正确的金额和总和,然后在响应中打印它们。
答案 3 :(得分:0)
解决方案:使用XHR和文件系统存储更新没有页面重新加载的状态
如果您希望其他计算机上有人查看更新,则您需要将该信息存储在服务器上。您可以将信息存储在数据库中,但是对于我使用文件系统的一小部分信息。
page1.php中
<?php
// get baby status if available
if ( is_readable('baby_status.php') ) {
include 'baby_status.php';
}
$status = ( $status )? $status: '??';
// prepare to update select list
list($pl_check, $pl_check, $pl_check) = array('', '', '');
switch ( $status ) {
case 'playing': $pl_check = ' selected '; break;
case 'awake': $aw_check = ' selected '; break;
case 'sleeping': $sl_check = ' selected '; break;
}
?>
<center>
<h1>What Is Jacob Dailey Doing?</h1>
<form id="baby_form" method="post" action="update_baby.php">
<select id="baby_status" name="baby_status">
<option value="playing" <?php echo $pl_check ?>>Playing</option>
<option value="awake" <?php echo $aw_check ?>>Awake</option>
<option value="sleeping"<?php echo $sl_check ?>>Sleeping</option>
</select><br />
<input type="submit" value="Submit"/>
</form>
<a href="page2.php">See Baby Status</a>
</center>
<script>
// XHR/PHP/Filesystem method
function update_baby () {
var baby_status = document.getElementById('baby_status');
var status=encodeURIComponent(baby_status.options[baby_status.selectedIndex].value)
var parameters = 'baby_status=' + status
// set up XHR object
var xhr = new XMLHttpRequest()
xhr.open('POST', 'update_baby.php', true)
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
// handle response
xhr.onload = function () {
console.log(this.responseText)
alert(this.responseText)
}
xhr.send(parameters)
}
// hook up baby status function to form submit
document.getElementById('baby_form').addEventListener('submit', function(evt){
evt.preventDefault()
update_baby()
})
</script>
使page2.php
<?php
// execute baby update code and get current status
include 'update_baby.php';
echo '<center> <h1>Baby Jacob Dailey Is Currently ' . ucwords($status) . '</h1>';
if ($status == "playing") {
echo '<img src="http://cdn.sheknows.com/articles/2013/02/baby-playing-with-blocks.jpg"/>';
}
elseif ($status == "awake") {
echo '<img src="http://www.westheimphoto.com/lightbox/gallery/TaiwanStockPhotos/TWNhw1221.jpg"/>';
}
elseif ($status == "sleeping") {
echo '<img src="http://www.babycare.onlymyhealth.com/imported/images/neonatal/2012/July/19_Jul_2012/6-Months-Old-ssl.jpg"/>';
}
?>
<br>
<a href="page1.php">Update Baby Status</a>
</center>
update_baby.php
<?php
if (isset($_POST['baby_status'])) {
$status = $_POST['baby_status'];
// prepare php script text for baby status file
$status_write = <<<EOT
<?php
\$status = '$status';
?>
EOT;
// write status to baby_status.php
if ( $baby_status_file = fopen('baby_status.php', 'w') ) {
fwrite($baby_status_file, $status_write);
fclose($baby_status_file);
}
echo 'Baby status updated.';
}
else {
if ( is_readable('baby_status.php') ) {
include 'baby_status.php';
}
$status = ( $status )? $status: '??';
}
?>
注意:要使用此选项,这些文件所在的目录必须可由Web服务器写入。