2014-10-20 98 views
0

我不知道是什么问题。我点击按钮后,它只有数据到数据库,但不会去下一个PHP页面。帮我找出问题所在。谢谢。点击按钮,保存数据并转到下一个php页面

if(isset($_POST['btnSubmit'])){ 
$AddMCQ = "INSERT INTO tblmc(Name,FromDate,ToDate,Reason) VALUES('".strtoupper($_POST['txtName'])."','".$_POST['txtFrom']."','".$_POST['txtTo']."','".strtoupper($_POST['txtReason'])."')"; 
$AddMCResult = mysql_query($AddMCQ,$link); 
header('Location: mcreport.php'); 

if($AddMCResult) 
     echo "<script>alert('Record Added.');</script>"; 

} 
//button 
<input type="submit" name="btnSubmit" id="btnSubmit" value="Submit"/> 
+0

添加错误的文件的顶部报告(S )在你打开'<?php'标记后立即'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否产生任何东西。我的猜测是“输出之前输出”;)编辑:哦,并添加'退出;'标题后,这可能工作;我说“可能”。 – 2014-10-20 11:10:49

+0

你的JavaScript永远不会执行。一旦使用'header();'将用户发送到另一个页面,以下所有代码都不会被执行。 – Jerodev 2014-10-20 11:12:39

+0

有没有使用标题其他简单的方法? – phpnewbie123 2014-10-20 11:20:15

回答

0

试试这个

<?php 
    if(isset($_POST['btnSubmit'])) 
{ 

     $txtName=$_POST['txtName']; 
     $txtFrom=$_POST['txtFrom']; 
     $txtTo=$_POST['txtTo']; 
     $txtReason=$_POST['txtReason']; 
     $AddMCQ = "INSERT INTO tblmc(Name,FromDate,ToDate,Reason) VALUES('$txtName','$txtFrom','$txtTo','$txtReason')"; 
     $AddMCResult = mysql_query($AddMCQ,$link); 
     if($AddMCResult) 
     { 
       echo "<script language=\"JavaScript\">\n"; 
     echo "alert('Record Added.');\n"; 
     echo "window.location='mcreport.php'"; 
     echo "</script>"; 
     } 
     } 
?> 
+0

注意:'VALUES('$ txtName','$ txtFrom','$ txtTo','$ txtReason')'会抛出/导致SQL错误,因为我们正在处理字符串。你应该刚刚使用OP的代码或完全忽略它。 – 2014-10-20 11:38:12

0

header后把die()

header('Location: mcreport.php'); 
die(); 

,更好的使用绝对 urls.Also可以使用exit()而不是die()

+0

当我使用重定向,它会出现此消息“致命的错误:调用未定义的函数重定向()在K:\ xampp \ htdocs \诊所\ MakeMc.php在21行” – phpnewbie123 2014-10-20 11:34:04

+0

你试过第二个答案..? – Gautam3164 2014-10-20 11:35:25

+0

它也没有工作......它出现此消息“警告:无法修改头文件信息 - 已在K:\ xampp \ htdocs中发送的头文件(输出在K:\ xampp \ htdocs \ clinic \ MakeMc.php中为13) \诊所\ MakeMc.php在线21“ – phpnewbie123 2014-10-20 11:37:54

0

贵 “的问题” 是导致$ AddMCResult

后,你必须使用头( '位置:mcreport.php');

脚本重定向到指定的URL和在$ AddMCResult没有给出任何更多

所以一个快速和肮脏的解决办法是

if(isset($_POST['btnSubmit'])){ 
$AddMCQ = "INSERT INTO tblmc(Name,FromDate,ToDate,Reason) VALUES('".strtoupper($_POST['txtName'])."','".$_POST['txtFrom']."','".$_POST['txtTo']."','".strtoupper($_POST['txtReason'])."')"; 
$AddMCResult = mysql_query($AddMCQ,$link); 
$_SESSION['AddMCResult'] = $AddMCResult; 
header('Location: mcreport.php'); 


} 

和mcreport.php

if(isset($_SESSION['AddMCResult']) && $AddMCResult)

 echo "<script>alert('Record Added.');</script>"; 

...

但是检查,在两个文件上调用了session_start()...

+0

它显示错误消息这样的事情”警告:不能修改头信息 - 已发送的头(在K:\ xampp \ htdocs \ clinic \ MakeMc.php:13开始输出) (')'('$ sl_no','$ f_name','');在第21行的K:\ xampp \ htdocs \ clinic \ MakeMc.php“ – phpnewbie123 2014-10-20 11:40:58

+0

这个问题..你已经在调用头文件之前生成了任何输出**() – donald123 2014-10-20 11:43:51

0

仔细检查表名和传递参数 - 通过一个到另一个页面 - 见get和post方法 -

<?php 
include 'config.php'; 
$submit="submit"; 
$page = $_SERVER['PHP_SELF']; 
$sl_no=$_POST['sl-no']; 
$f_name=$_POST['f_name']; 
$l_name=$_POST['l_name']; 

if($submit) 
{ 
$sql = "INSERT INTO table_name(sl_no,f_name,l_name) values('$sl_no','$f_name','$l_name')"; 
$result = mysql_query($sql); 
echo "Thank you! Information entered.\n"; 

} 
else 
{ 
echo "There Is Something Going Wrong While Insertion"; 
header('Location: error.php'); 
} 
+0

'顺便说一句,$ l_name')'会失败。我知道这仅仅是一个例子,但它会因为包含字符串的值而抛出SQL错误。 – 2014-10-20 11:20:57

相关问题