Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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
Php 如何在页面上没有提交按钮的情况下调用JS/ajax?_Php_Javascript_Html_Ajax - Fatal编程技术网

Php 如何在页面上没有提交按钮的情况下调用JS/ajax?

Php 如何在页面上没有提交按钮的情况下调用JS/ajax?,php,javascript,html,ajax,Php,Javascript,Html,Ajax,我有一个网站页面,其中只包含一个字段显示收件箱中的邮件数的数据,我需要刷新此页面,因为新邮件随时可能出现,因此用户在此页面上可以看到新邮件。我如何调用我的JS/ajax来进行刷新 我尝试了标题(“刷新:10”);但客户不高兴,因为它刷新了整个页面,他只希望没有消息刷新,因为他们进来…有人可以帮忙吗?谢谢 此页面的我的代码: <?php use_stylesheets_for_form($search_form) ?> <?php use_javascripts_for_form

我有一个网站页面,其中只包含一个字段显示收件箱中的邮件数的数据,我需要刷新此页面,因为新邮件随时可能出现,因此用户在此页面上可以看到新邮件。我如何调用我的JS/ajax来进行刷新

我尝试了标题(“刷新:10”);但客户不高兴,因为它刷新了整个页面,他只希望没有消息刷新,因为他们进来…有人可以帮忙吗?谢谢

此页面的我的代码:

<?php use_stylesheets_for_form($search_form) ?>
<?php use_javascripts_for_form($search_form) ?>
<div id='div_longgray_gradient2'>
<div id='div_float_img'>
<br/>
<table width='96%' border='0'>
<tr>
   <td colspan='2' align='right'>
    <form action="<?php echo url_for('profiles/search' ) ?>" method="post" > 
      <table>
      <tr>
      <td>
      <span class='spn_med_lightblue_rbc'>Profile Search &nbsp;&nbsp; 
      </span> 
      <?php echo $search_form['uc_other']->render(array('default')); ?>     </td>
      <td><input class='submit_img' type="image" src="/images/rainbow/gobuttonbluesmall.png" value="Submit" alt="Submit"></td>
    </tr>
            </table>
            </form>
    </td>
  </tr>
  <tr>
    <td rowspan='2' width='40px' align='left'>
        <img src='/images/rainbow/arrow.png'>
    </td>
    <td align='left'>
        <span class='spn_big_black_rbc'>WELCOME <?php echo $usr_profile->getName() ?></span>
    </td>
    <td align='left'>
    <?php     
       if (0)
        {
        // $filename = $usr_profile->getMsisdn();
        $filename = $usr_profile->getProfilePicPath();
        if ($filename && file_exists($filename))
        {                
            $source = imagecreatefromjpeg($filename);
        }
        else
        {                
            $filename = $usr_profile->getDefaultProfilePicPath();
            $source = imagecreatefromjpeg($filename);
            echo "<span class='spn_big_black_rbc'>You have not uploaded an image yet</span>";                
        }

    }
    if($usr_profile->existsProfilePic()==FALSE) 
    {
        echo "<span class='spn_big_black_rbc'>You have not uploaded an image yet</span>";     
        echo "</br>";           
    }

    if($usr_profile->checkForMissingInfo()== 1)
    {
        echo "<span class='spn_big_black_rbc'>You have some missing info</span>";  
        echo "&nbsp;&nbsp;&nbsp;&nbsp;";
        echo link_to('Edit','profile/edit','class=link_medium');
    }
    ?>

    </td>
</tr>
<tr>
<td align='left'>
    <span class='spn_med_lightblue_rbc'>TO RAINBOW</span>
    <span class='spn_med_black_rbc'>CODE</span>
    <span class='spn_med_lightblue_rbc'>...SHINE ON</span>
    </td>
    <td>
    </td>
</tr>
 </table>
 <br/>
 <table class='table_border_light' width='820px'>
<tr>
    <td class='td_header_blue' colspan='3' align='left'>
      <span class='spn_big_black_rbc'>
        MY FEEDS
      </span>
    </td>
    <td class='td_header_blue' colspan='3' align='left'>
        <span class='spn_big_black_rbc'>
            RAINBOWCODE NEWS
      </span>
    </td>
</tr>
<tr>
    <td valign='top' colspan='3' width='50%' align='left'>              
    <span class='spn_med_black_rbc'>You have <?php echo $new_mail_cnt ?> new </span>
    <?php echo link_to('Messages','messagebox/list','class=link_medium_blue'); ?>       
        </br>
        <span class='spn_med_black_rbc'>You have 
            <?php 
               echo sizeof($block_records); 
            ?> blocked users </span>
    </td>
    <td valign='top'colspan='3'  width='50%' align='left'>
            <ul>                
            <li>
               <a href="http://spreadsheets.google.com/a/miranetworks.net/spreadsheet/viewform?formkey=dEVlYTdJTzZiU0JPTnZqYWlZQTJRZ0E6MQ" class='link_medium_blue'> Rate us! Complete the online questionnaire</a></b>
            </li>
            <?php 
                foreach($news as $news_item)
                {
                    echo "<li>".$news_item->getNews(). "</li>";
                    $newsId = $news_item->getId();
                    if ($newsId == 1)
                    {
                       //some echos here to display text  
                    }
                }
            ?>
            </ul>   
    </td>   
</tr>
<tr>
    <td colspan='3' align='left'>
        <span class='spn_big_black_rbc'>
        MOOD BAROMETER
        <?php echo link_to('how does it work?','util/barometer','class=link_medium_blue'); ?>
      </span>
        <?php 
            include_component('profile','moodmetershow');  
        ?>
    </td>
    <td colspan='3' align='left'> 
        <?php
            include_component('profile','moodmeter'); 
        ?>
    </td>
</tr>
<tr>
    <td colspan='3' align='left'>
     &nbsp;
    </td>
</tr>
</table>
</div>
</div>


欢迎 javascript中的Try timer是一种技术,允许您在加载页面后向服务器启动web请求。当使用AJAX请求时,页面不必重新加载(实际上,用户甚至不会注意到请求正在发生)

您应该向服务器启动一个AJAX请求,它将检查是否有任何新消息

要连续检查新消息,可以使用或方法创建计时器,以便在指定的时间段启动AJAX请求

虽然我不太喜欢在一个问题没有提到使用库时推广使用库,但您可能会发现使用库(例如)将极大地简化管理AJAX请求的过程,因为它附带了一个为您做艰苦工作的工具

无论您是否选择使用库来执行AJAX请求,解决方案的工作流如下所示:

  • 使用计时器(每10秒,比如说,启动一个AJAX请求)访问服务器上的网页(例如
    checkfornewmessages.php
  • 在服务器上,检查是否有任何新消息,并在输出中包括要向用户显示的内容(例如,新消息的数量、消息的标题等)
  • 在AJAX请求的回调中,将AJAX调用的响应(将包含在PHP代码中创建的输出)设置为页面上某个DOM元素的内容(例如,
    您有新的

  • 我假设在使用表单($search\u form)时,您在某处有一个jQuery引用,如果没有,您可以下载它并将其包含在标题中

    =======注意:未测试======

    更改以下行

         <span class='spn_med_black_rbc'>You have <?php echo $new_mail_cnt ?> new </span>
    
    这将尝试每隔10秒使用newMessageCheck.php的内容刷新div,此文件应只输出一个值,即当前新消息的数量。

    您将:

    setTimeout(samefunction,milliseconds)
    
    在该函数中,您要自动充值并调用相同的


    这将创建一个无限循环等待x毫秒

    谢谢,请查看我添加的一些代码…所有这些代码只是为了更新/刷新$new\u mail\u cnt??哎呀!在newMessageCheck.php中必须发生什么抱歉,但我做了一个教程,也在努力学习,所以还不了解所有内容…谢谢newMessageCheck.php应该只输出一个数字($new_mail_cnt)和你在当前文件中获得该值的方法相同,当前的方法是使用symfony框架,它包含其他类,但不知道如何工作,但谢谢你,已经排序了。现在唯一的事情是我将如何调用代码,我必须放在标记中,请??谢谢你也许可以把代码放到正常的body标签中,这并不理想,但应该可以工作
         <span class='spn_med_black_rbc'>You have <?php echo $new_mail_cnt ?> new </span>
    
         <span class='spn_med_black_rbc'>You have <div id='newMessageDiv'><?php echo $new_mail_cnt ?></div> new </span>
    
         $(document).ready(function() {
             $("#newMessageDiv").load
        ("newMessageCheck.php");
           var refreshId = setInterval(function() {
              $("#newMessageDiv").load('newMessageCheck.php?randval='+ Math.random());
           }, 10000);
           $.ajaxSetup({ cache: false });
        });
    
    setTimeout(samefunction,milliseconds)