2015-01-21 43 views
2

我有一个表单,当提交时将数据传递给taskqueue.php,然后继续将值传递给process.php。如果在下拉列表中选择了特定值,则GAE任务队列将不会继续

继承人的下拉这就是导致问题:

<select id="year" name='year'> 
<option value="0">Year End...*</option> 
<option value="2013">2013</option> 
<option value="2014">2014</option> 
<option value="2015">2015</option> 
</select> 

如果我选择2015年,没有任何问题,它会继续到taskqueue.php然后processing.php和执行任务。如果我选择2014年或2013年,那么我会看到一个空白页面,其URL看起来像卡住了taskqueue.php。

如果我改变所有的下拉菜单的“价值”到2015年,那么它会继续处理任务如

<option value="2015">2013</option> 
<option value="2015">2014</option> 
<option value="2015">2015</option> 
如果我改变下拉标签

,世界上没有问题,只是似乎本身就是价值。

我确实有隐藏/显示下拉菜单的javascript,但我无法看到任何引用2014/2013的任何地方。

下面 FORM见代码:

<script type="text/javascript" language="javascript"> 

    function display_Field(e){ 
     document.getElementById('month').style.display = "none"; 
     document.getElementById('quarter').style.display = "none"; 
     document.getElementById('year').style.display = "none"; 
     periodend=document.getElementById('periodend').value; 
     if (periodend === 'Monthly') { 
     document.getElementById('year').selectedIndex = 0; 
     document.getElementById('month').style.display = "inline"; 
     document.getElementById('year').style.display = "inline"; 
     document.getElementById('quarter').selectedIndex = 0; 
     } 
     if(periodend === 'Quarterly') { 
     document.getElementById('year').selectedIndex = 0; 
     document.getElementById('quarter').style.display = "inline"; 
     document.getElementById('year').style.display = "inline"; 
     document.getElementById('month').selectedIndex = 0; 
     } 
     if (periodend === 'Yearly'){ 
     document.getElementById('year').selectedIndex = 0; 
     document.getElementById('year').style.display = "inline"; 
     document.getElementById('month').selectedIndex = 0; 
     document.getElementById('quarter').selectedIndex = 0; 
     } 
    } 
    function validate() { 
     periodend=document.getElementById('periodend').value; 
     month=document.getElementById('month').value; 
     quarter=document.getElementById('quarter').value; 
     year=document.getElementById('year').value; 
     if (periodend==='0'||(periodend==='Monthly' && (month==='0'||year==='0'))||(periodend==='Quarterly' && (quarter==='0'||year==='0'))||(periodend==='Yearly' && year==='0')) { 
      valid_alert=''; 
      if (periodend==='0') { 
       valid_alert='Please select a period end\n'; 
      } 
      if (periodend==='Monthly' && (month==='0'||year==='0')) { 
       if (month==='0') { 
       valid_alert=valid_alert+'Please select a month end\n'; 
       } 
       if (year==='0') { 
       valid_alert=valid_alert+'Please select a year\n'; 
       } 
      } 
      if (periodend==='Quarterly' && (quarter==='0'||year==='0')) { 
       if (quarter==='0') { 
       valid_alert=valid_alert+'Please select a quarter end\n'; 
       } 
       if (year==='0') { 
       valid_alert=valid_alert+'Please select a year\n'; 
       } 
      } 
      if (periodend==='Yearly' && year==='0') { 
       valid_alert=valid_alert+'Please select a year\n'; 
       } 
      alert(valid_alert); 
     return false; 
     } else { 
     return true; 
     } 
    } 
    </script> 

    <?php 
<form id="report-form" name="report-form" action="/taskqueue.php" method="post" style="margin-bottom:40px;"> 
    <select id="periodend" name="periodend" class="inline" onChange="display_Field(this.selectedIndex);"> 
            <option value="0">Period Ended...*</option> 
            <option value="Monthly">Monthly</option> 
            <option value="Quarterly">Quarterly</option> 
            <option value="Yearly">Yearly</option>   
           </select> 
           <select id="month" name='month'> 
            <option value="0">Month End...*</option> 
            <option value="January">January</option> 
            <option value="February">February</option> 
            <option value="March">March</option> 
            <option value="April">April</option> 
            <option value="May">May</option> 
            <option value="June">June</option> 
            <option value="July">July</option> 
            <option value="August">August</option> 
            <option value="September">September</option> 
            <option value="October">October</option> 
            <option value="November">November</option> 
            <option value="December">December</option> 
           </select> 
           <select id="quarter" name='quarter'> 
            <option value="0">Quarter End...*</option> 
            <option value="30 September">30 September</option> 
            <option value="31 December">31 December</option> 
            <option value="31 March">31 March</option> 
            <option value="30 June">30 June</option>      
           </select> 
           <select id="year" name='year'> 
            <option value="0">Year End...*</option> 
            <option value="2013">2013</option> 
            <option value="2014">2014</option> 
            <option value="2015">2015</option> 
           </select> 
    <input type="submit" id="save-submit" name="save-submit" value="Save & Setup Another" onClick="return validate();"></form> 
    >? 

TASKQUEUE.PHP

<?php 
require_once 'google/appengine/api/taskqueue/PushTask.php'; 
use google\appengine\api\taskqueue\PushTask; 

$name=$current_user->businessname; 
$staff_member=$current_user->user_firstname." ".$current_user->user_lastname; 
$staff_email=$user_email; 
$client_name=stripslashes($_POST['search']); 
$periodend=$_POST['periodend']; 
$month=$_POST['month']; 
$quarter=$_POST['quarter']; 
$year=$_POST['year']; 
$comments=$_POST['comments']; 
$setupanother=$_POST['save-submit']; 
$submit=$_POST['submit']; 

if($_POST['save-submit'] || $_POST['submit']){ 
$wp_task = new PushTask('/process.php', ['name' => $name 
, 'staff_member' => $staff_member 
, 'client_name' => $client_name 
, 'staff_email' => $staff_email 
, 'periodend' => $periodend 
, 'month' => $month 
, 'quarter' => $quarter 
, 'year' => $year 
, 'comments' => $comments 
, 'save-submit' => $setupanother 
, 'submit' => $submit 
]); 
$task_name = $wp_task->add(); 
    } 
header("Location: /<another page>"); 
    ?> 

任何你看到的可能是一个问题?在此先感谢,对于长期问题感到抱歉,必须确保我包括所有内容!

回答

0

找到了!

这是我的taskqueue.php AND processing.php中的$year变量,这是问题所在。改为$yearend,似乎工作。希望这是它的结局!

0

所以看起来我忽略了style.css中存在另一个id'year'的事实。因此,所有我没有在我的代码改为'year''yearend'

编辑: 所以将其更改为“年底”,已经允许代码回路回到原来的页面例如header("Location: /<another page>");不再给出空白页面,但仍然不会在后台处理任务,除非其'2015'。只是坐在任务队列中。

相关问题