2012-02-17 93 views
0

我试图解决一个问题,但没有成功。我从谷歌分析检索数据,我必须发送开始和结束日期。我有两个文本框和用户选择的开始和结束日期。但是,但在用户选择enter image description here开始和结束日期。出现该问题的..php - isset按钮

,我使用isset是这里的地方,

这是我的全功能HTML

<?php 
define('ga_email','[email protected]'); 
define('ga_password','************'); 
define('ga_profile_id','*******'); 

require 'gapi.class.php'; 
require 'connectDB.php'; 

$ga = new gapi(ga_email,ga_password); 




?> 



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>İçerik</title> 
<script language="javascript" type="text/javascript" src="datetimepicker.js"> 

//Date Time Picker script- by TengYong Ng of http://www.rainforestnet.com 
//Script featured on JavaScript Kit (http://www.javascriptkit.com) 
//For this script, visit http://www.javascriptkit.com 

</script> 
</head> 
<div></div> 
<body> 
    <table align="center"> 
     <tr> 
     <td><br /> 
    <br /> 
    <form action="#" method="post" name="formDates" id="form1" > 
    <table width="303" height="40" border="0" align="center"> 
     <table width ="" 
    <tr> 
    <td>Başlangıç Tarihi</td> 
    <td> 
     <label for="txtStartDate"></label> 
     <input type="text" name="txtStartDate" id="txt1" value="" /><a href="javascript:NewCal('txt1','ddmmyyyy')"><img src="images/cal.gif" width="16" height="16" border="0" alt="Başlangıç Tarihi Seçin"> 
     </a> 
    </td> 
    </tr> 
    <tr> 
    <td>Bitiş Tarihi</td> 
    <td> 
     <label for="txtEndDate"></label> 
     <input type="text" name="txtEndDate" id="txt2" /><a href="javascript:NewCal('txt2','ddmmyyyy')"><img src="images/cal.gif" width="16" height="16" border="0" alt="Bitiş Tarihi Seçin"> 
     </a> 

    </td> 
    </tr> 
    </form> 
     <tr> 
      <td><input type="submit" name="btnSubmit" value="Gönder"</td> 
     </tr> 

</table> 
    <table width="1250" height="26" align="center"> 
    <tr> 

    <td width="138"><strong>Kanal Adı</strong> 
    <td width="150"><b>Kategori Adı</b></td> 
    <td width="130"><p><strong>Event Adı</strong></td> 
    <td width="145"><strong>Toplam</strong> 

    </tr> 
    </table> 



      <?php 

      if(isset($_POST['submit'])){  
       $startDate = $_POST['txtStartDate']; 
       $endDate = $_POST['txtEndDate']; 
      } 


      $arrDates = explode("-",$startDate); 
      $startDate=$arrDates[2]."-".$arrDates[1]."-".$arrDates[0]; 
      $arrDates = explode("-",$endDate); 
      $endDate = $arrDates[2]."-".$arrDates[1]."-".$arrDates[0]; 

      echo $startDate; 
      echo $endDate; 



      $ga->requestReportData(ga_profile_id,array('eventCategory','eventAction'),array('totalEvents'),$sort_metric=null,$filter='eventAction==InitPlayer',$start_date='2012-02-02',$end_date='2012-02-16'); 
      foreach($ga->getResults() as $result2); 
      { 
       echo $result2->geteventCategory(); 
       echo $result2->geteventAction(); 
       echo $result2->gettotalEvents(); 
      } 


      $ga->requestAccountData(); 
      $mysql = new mysql(); 
      $mysql->connect(); 
      $counter = 0; 



      foreach($ga->getResults() as $result) 
      {  
       echo $result . ' (' . $result->getProfileId() . ")<br />"; 
       echo "<br />"; 
       $counter++; 
      } 

      $result = mysql_query("select profile_id from profiles"); 
      $num_rows = mysql_num_rows($result); 



      if($counter != $num_rows) 
      { 
       $mysql->query("delete from profiles"); 

       foreach($ga->getResults() as $result) 
       { 
        $mysql->query("insert into profiles values(".$result->getProfileId().",'".$result."')"); 
       } 
      } 






      ?> 

</td> 
    </tr> 
    </table> 
</body> 
</head> 
</html> 

有什么不好?

如果选择开始和结束日期的问题是解决了,之前发生的问题,我选择

+0

邮政HTML表单的类型 btnSubmit按钮=名称。为什么不测试$ _POST ['txtStartDate']是否被设置?如果txtStartDate和textEndDate未通过发送错误消息或抛出异常来设置,请确保相应地作出反应。 – busypeoples 2012-02-17 07:49:24

+1

你确定在你的html表单中,输入元素有'name'属性吗? (isset($ _ POST ['txtStartDate'])&& isset($ _ POST ['txtEndDate'])) { {0} {start} = $ _POST [*]如果没有HTML代码很难提供帮助,但这是我在黑暗中拍摄的 – xbonez 2012-02-17 07:55:36

回答

1

我觉得应该是:的

if(isset($_POST['submit'])) 

代替:

if(!isset($_POST['submit'])) 

感叹号在isset前意味着not。此外,我会检查你想用实际的领域,而不是$_POST['submit']

if(isset($_POST['txtStartDate']) && isset($_POST['txtEndDate'])) 
{ 
    // Do something with $_POST['txtStartDate'] and $_POST['txtEndDate'] 
} 

你得到的错误的原因是,$_POST['submit']不存在。没有input元素,name属性称为submit。谨防typename之间的差异。

+0

[ 'txtStartDate']; $ endDate = $ _POST ['txtEndDate']; echo $ startDate; echo $ endDate; } 这个作品谢谢你! – 2012-02-17 08:08:00

+1

不客气。我很高兴它现在有效。 – Mischa 2012-02-17 08:11:14

1
Undefined index txtStartDate, ... 

看来你的形式可能不符合与您在使用一个相同的变量名规范这个PHP文件。确保字段名称在表格和此处匹配。

,你也应该做这些检查你的PHP文件提交成功后:if(!isset($_POST['submit']))

0
if(!isset($_POST['submit'])) 

这意味着,如果提交按钮被压。你应该检查$_POST['submit']设置,作为表单提交的结果,就像这样:

if(isset($_POST['submit'])) 
0

我想这应该是if(isset($_POST['submit']))而不是if(!isset($_POST['submit']))作为启动!意味着否定

+0

没有什么改变。 – 2012-02-17 07:54:49

+0

@MertMETİN你确定你正在执行发布请求?请显示你的html。 – Mischa 2012-02-17 07:57:16

+0

我发送了我的完整的php – 2012-02-17 07:58:49

1

当您的页面正在加载并且$_POST['submit']未设置时,您的$_POST['txtStartDate']$_POST['txtEndDate']未设置,因此$arrDates也未设置。你需要检查这些$ _POST变量是否设置,以与他们合作。

1

您必须对每个变量使用isset(),而不仅仅是一个变量。 $_POST['txtStartDate']$_POST['txtEndDate']和其他变量根本没有定义,这意味着它们没有与POST请求一起发送。

2

它必须是isset($_POST["btnSubmit"])不提交

提交=按钮