-1

我已经创建了一个用于在酒店中列出促销活动的表格,并且我得到了 ajax 以通过入住和退房日期搜索促销活动。我的促销清单有一个预订提交按钮。

当我的页面加载时,我只是从数据库中检索带有一些随机日期的促销列表,并且我得到了供用户使用的搜索表单,用于通过使用 ajax 提交来过滤促销,但是当 ajax 触发时,预订按钮不提交。

请帮我。提前致谢

这是ajax代码:

$("#submitform").click(function(){
    $.ajax({
    data:$("#checkpromofrm").serialize(),
    url:'<?php echo '/'.APP_ROOT.'/promotion/checkpromotion'?>',
    type:"POST",
    success:function(respone){
    $('#hideform').html(respone);
    }
    });
    return false;
});

这是我的搜索表单:

<form name="frmrate" action="" id="checkpromofrm">
    Check-in
    <input type="text" id="popupDatepicker"  style="width:100px;" name="txtstartdate" value="<?php $currentdate = date('d-M-Y', strtotime('1 days'));
                    echo $currentdate;
                }
            ?>"/>

    Check-out:
    <input type="text" id="elapsed"  style="width:140px;text-align:left; border:none;padding-left:0px;"  value="<?php $currentdate = date('d-M-Y', strtotime('2 days'));
                    echo $currentdate;
                }
            ?>" readonly="readonly" name="EndDateCheckRate"/>
    <input type="submit" id="submitform" value=" Check"  name="" />
</form>

这是我的促销清单:

<form action="<?php echo '/' . APP_ROOT . '/'; ?>promotion/<?php echo $newroom['h_id']?>/hotel" method="post">
    <tr id="songlist">
        <td width="100">
            <img src="<?php echo '/'.APP_ROOTAdmin.'/'.$newroom['r_picpath'];?>" align="left"  />   
        </td>
        <td >
            <p><span style="color:#1A7CBC;font-weight:bold;">
                <input type="hidden" name="r_cat" value="<?php echo $newroom['r_cat']; ?>"  />
                <input type="hidden" name="brf" value="<?php $newroom['brf'] ?>"  />
                <?php echo $newroom['r_cat'];?> Single</span>
                <font><b>
                    <i><br />
                        <?php if($newroom['brf']=='0')
      { echo "Breakfast not included"; }
      else { echo "Breakfast included";}?>
                    </i></b>
                </font>
            </p>
        </td>


        <td align="center" valign="middle">
            <input type="hidden" name="txthid" value="<?php echo $HoDetail['h_id']; ?>" />
            <input type="hidden" name="txtrid" value="<?php echo $newroom['r_id']?>" />
            <input type="submit" class="bookbutton red" value="Book now" onclick="return check(num);" /><br />
            Only <?php echo $newroom['s_room']?> rooms left
        </td> 
    </tr>
</form>
4

2 回答 2

0

您的成功回调函数指的是一个没有出现在您的屏幕上的元素(至少没有出现在提供的代码中。此外,您可能想要验证您使用 PHP 生成的 URL 实际上指向一个有效的 URL。

$("#submitform").click(function(){
  $.ajax({
    data:$("#checkpromofrm").serialize(),
    url:'<?php echo '/'.APP_ROOT.'/promotion/checkpromotion'?>',
    type:"POST",
    success:function(respone){
      $('#hideform').html(respone);  //<-- doesn't exist 
    }
  });
  return false;
});
于 2013-04-22T04:10:29.767 回答
0

首先,您的 jquery 脚本必须在任何 php 文件中,因为您在其中使用 php 脚本。因此,如果您为此使用 .js 文件,它将不起作用。

现在,让我们简化并升级您的 jquery 脚本到 1.9.x 版本,

$(document).ready(function() {     
     $(document).on('click', '#submitform', function() {
          var data = $('#checkpromofrm').serialize();
          $.post ("<?php echo '/' . APP_ROOT . '/promotion/checkpromotion'; ?>", {data:data}, function(response) {
               // do something with response
          });

          return false;
     });
})

此处,php 脚本应在双引号内,而 php 代码应使用单引号。

编辑

让我们做一些测试,一个一个地使用它。

测试 1:jQuery 测试。页面加载时应弹出警报。

$(document).ready(function() {
     alert("jQuery Loaded Successfully.");
})

测试2:表单提交测试。单击时不应刷新页面#submitform。提交表单后,刷新页面(按f5)。在刷新弹出框时不应出现“想要重新提交”或类似的信息?

$(document).ready(function() {
     $(document).on('click', '#submitform', function() {
          return false;
     });
})
于 2013-04-22T05:45:57.643 回答