Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过ajax提交选择框的值并显示结果不起作用_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 通过ajax提交选择框的值并显示结果不起作用

Javascript 通过ajax提交选择框的值并显示结果不起作用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个表单,它有一个选择框,其中包含一年中的月份,在选择任何月份后,应在同一页面上显示该月份的所有日期。我曾尝试使用ajax来实现这一点,但不知何故,我没有得到任何结果。当我直接查看通过ajax调用的页面时,我在那里得到了预期的结果。无法找出主页面未显示结果的原因 主页 <form method="post" action="" name="form_cal" id="form_cal"> <div> <span><label

我有一个表单,它有一个选择框,其中包含一年中的月份,在选择任何月份后,应在同一页面上显示该月份的所有日期。我曾尝试使用ajax来实现这一点,但不知何故,我没有得到任何结果。当我直接查看通过ajax调用的页面时,我在那里得到了预期的结果。无法找出主页面未显示结果的原因

主页

 <form method="post" action="" name="form_cal" id="form_cal">
    <div>
        <span><label class="h5"><strong>Month for Screening</strong></label></span>
        <span>                          
            <select name="month" id="month" value="" tabindex="1" aria-hidden="true" required style="height:50px;display: block;padding:10px;" class="h5">
                <option value="" selected="selected">- Select One -</option>
                <option value="1">January</option>
                <option value="2">Febuary</option>
                <option value="3">March</option>
                <option value="4">April</option>
                <option value="5">May</option>
                <option value="6">June</option>
                <option value="7">July</option>
                <option value="8">August</option>
                <option value="9">September</option>
                <option value="10">October</option>
                <option value="11">November</option>
                <option value="12">December</option>
            </select>
        </span>
    </div>
</form>
<div id="calendar-display"></div>

筛查月份
-选择一个-
一月
二月
前进
四月
也许
六月
七月
八月
九月
十月
十一月
十二月
JS

<script type='text/javascript'>
$(document).ready(function(){ 
  var timer = null; 
  var dataString; 
  function submitForm(){
      $.ajax({ type: "POST",
                url: "calendar-action.php",
                data: dataString,
                success: function(result){
                    $('#calendar-display').php(result);
                }
      });
      return false;
  }
  $('#month').on('change', function() {
     clearTimeout(timer);
     var month = $(this).val();
     dataString = 'month='+ month;
     timer = setTimeout(submitForm, 050);
 });
});

$(文档).ready(函数(){
var定时器=null;
var数据串;
函数submitForm(){
$.ajax({type:“POST”,
url:“calendar action.php”,
数据:dataString,
成功:功能(结果){
$(“#日历显示”).php(结果);
}
});
返回false;
}
$(“#月”)。在('change',function()上{
清除超时(计时器);
var month=$(this.val();
数据字符串='月='+月;
定时器=设置超时(提交格式050);
});
});
然后在PHP中由ajax调用的页面

<?php 
if($_POST){

        date_default_timezone_set('Africa/Lagos');
        $date = date('Y-m-d H:i:s');
        $ucimslots = "25";
        $curyear = date("Y");
        $month = mysqli_real_escape_string($connQlife, $_POST['month']);
        $day = date('j');
        $daysinmonth = date('t',mktime(0,0,0,$month,1,$curyear));
        //$daysleftinmonth = $daysinmonth - $day;
}
?>

        <div id="calendar-display">
        <?Php for($day = 1; $day <= $daysinmonth; $day++){ ?>
        <div class="calendarcont">
            <div class="calendarheadercont">
                <div class="calendarday"><?Php echo date("l", mktime(0, 0, 0,$month,$day,$curyear)); ?></div>
                </div>
                <div class="clear_1"></div>
                <div class="calendarsubcont">
                    <div class="calendardatecont">
                        <div class="calendarmonth"><?Php echo date("M", mktime(0,0,0, $month,$day,$curyear)); ?></div>
                        <div class="calendardate"><?Php echo date("j", mktime(0,0,0,$month,$day,$curyear)); ?></div>
                 </div>
                 <div class="calendartextcont">
                     <div class="calendartext">Available slots: <?Php echo $availableslots; ?></div>
                 </div>
             </div>                                         
          </div>
        <?Php } ?>                   
        </div>

可用插槽:

在JavaScript中,尝试进行
php()
函数调用,该调用无效:

$(“#日历显示”).php(结果)

相反,您应该使用:


$('#日历显示').html(结果)

哦,该死。谢谢@Gary Thomas我把这个页面写成php页面并在那里输入php。谢谢你指出这一点。现在可以了。你为什么要使用
mysqli\u real\u escape\u string
?@dharman这是我正在进行的一个大型项目的一部分。这个月仍将有数据库条目。我只是在防范sql注入这不是防范sql注入的正确方法,不要使用它!请看这篇帖子:@DharmanYes我正在使用事先准备好的语句。但是如果我没弄错的话,你是说我不需要在准备好的语句中传递输入B之前转义它吗?如果你使用参数并绑定数据,那么就不需要了。如果你只是把它放到SQL字符串中,那么就没有什么可以保护你了。