使用PHP回声jQuery循环

时间:2012-10-12 19:39:05

标签: php jquery post loops jquery-post

经过很长一段时间的搜索,我决定在这里问一下,因为我找到的东西要么不起作用(或者我不能让它们起作用;)) - 或者要求我改变一些东西我的服务器,我想避免。

我希望下面的函数显示每个结果后的输出,因此不需要先加载该函数,这需要很长时间。正如你在下面看到的,我的想法是用jQuery(1.8.2)来尝试这个。

它不起作用,我根本无法让它工作。有一个更好的方法吗?我在某个地方犯了错误导致它无法正常工作吗?

如果您需要其他信息,请询问。

<?php
print_r($_POST);


if(isset($_POST['p']) && isset($_POST['domain']) && isset($_POST['option']))
{   error_reporting(0);
define('INCLUDE_CHECK',true);
require('admin/API/class_api.php');
require('admin/functions/core.inc.php');

    $dom = explode('.',$_POST['domain']);
    $dom = $dom[0];
    $ext = array('nl','be','eu','net','com','org','biz','info','tk','ws','gr','me','cc','in','gs','name','ch','co','tv','ru','bz','li','lu','pl','se','vg','cx','tl','im','sg','ms','sh','io','mu','fm','am','xxx','ag','sc','nf','md');

    if ($_POST['loop']==40)
     { print 'Laatste loop dus .. STOP : .'.$ext[41]; }
    else
     { print 'Loop: '.$_POST['loop'].' - zoek op : .'.$ext[$_POST['loop']];
       ?>
       <script>
        $.post('test.php', { p:'full', domain:dom, option:opt, loop:'<?php echo $_POST['loop']+1; ?>'},
        function(data){
          $('#domresults2').css('display','block').html(data);
          $('#domloading').css('display','none');
        });
       </script>
       <?php
     }

}
?>




//Start JS
<script>
$('#domsubmit.complete').click( function() {
  var dom = escape($('#domsearch').val());
  var opt = escape($('#option').val());

  $('#domresults2').css('display','none').html('');
  $('#domloading').css('display','inline');

  $.post('test.php', { p:'full', domain:dom, option:opt, loop:0},
     function(data){
       $('#domloading').css('display','none');
       $('#domresults2').css('display','block').html(data);
   });

return false;
});
</script>
//end JS

///////////////////////////

更新:已解决!

那么,出了什么问题? - &GT; core.inc.php中的php函数指的是与jQuery 1.8.2 lib('qTip2')不兼容。感谢您的支持!

<?php
print_r($_POST);

if (isset($_POST['p']) && isset($_POST['domain']) && isset($_POST['option'])) {
error_reporting(0);
define('INCLUDE_CHECK', true);
require('admin/API/class_api.php');
require('admin/functions/core.inc.php');

$dom = explode('.', $_POST['domain']);
$dom = $dom[0];
$ext = array('nl','be','eu','net','com','org','biz','info','tk','ws','gr','me','cc','in','gs','name','ch','co','tv','ru','bz','li','lu','pl','se','vg','cx','tl','im','sg','ms','sh','io','mu','fm','am','xxx','ag','sc','nf','md');

$loop = $_POST['loop'];
DomCheck($_POST['domain'],$ext[$_POST['loop']]);

if ($loop != count($ext)) {
$loop++;?>
  <script type="text/javascript">
        var opt = '<?php echo $_POST['option']; ?>';
        var dom = '<?php echo $_POST['domain']; ?>';
        $.post('test.php', { p:'full', domain:dom, option:opt, loop:'<?php echo $loop; ?>'},
        function(data){
            $('#domresults2').css('display','block').append(data);
            <?php if ($loop < count($ext)) {
                      echo "$('#domloading').css('display','none');";
                  } ?>
        });
    </script>
<?php
}
}
?>

1 个答案:

答案 0 :(得分:1)

您需要了解的一件事是PHP在服务器上执行,而JavaScript(jQuery)在客户端上执行。

这意味着当jQuery开始执行时,PHP 已完成

但是,我在代码中的任何地方都没有看到循环。我认为这更像是你想要的。你没有使用jQuery做“PHP循环”,你在PHP循环中输出jQuery代码:

<?php
if (isset($_POST['p']) && isset($_POST['domain']) && isset($_POST['option'])) {
    error_reporting(0);
    define('INCLUDE_CHECK', true);
    require('admin/API/class_api.php');
    require('admin/functions/core.inc.php');

    $dom = explode('.', $_POST['domain']);
    $dom = $dom[0];
    $ext = array('nl','be','eu','net','com','org','biz','info','tk','ws','gr','me','cc','in','gs','name','ch','co','tv','ru','bz','li','lu','pl','se','vg','cx','tl','im','sg','ms','sh','io','mu','fm','am','xxx','ag','sc','nf','md');

    foreach ($_POST['loop'] as $loop) {
        if ($loop == 40) {
            print "Laatste loop dus .. STOP : .{$ext[41]}";
        } else {
            print "Loop: {$loop} - zoek op : .{$ext[$loop]}";
?>      <script>
            $.post('test.php', { p:'full', domain:dom, option:opt, loop:'<?php echo $loop; ?>'},
            function(data){
                $('#domresults2').css('display','block').html(data);
                $('#domloading').css('display','none');
            });
        </script>
<?php   }
    }
}
?>