0

長い間検索した後、ここで質問することにしました。見つけたものが機能しない(または機能させることができない;))か、サーバー上のものを変更する必要があるためです。避けたいです。

以下の関数で各結果の後に出力を表示したいので、関数を最初にロードする必要はなく、時間がかかります。以下に示すように、私のアイデアは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

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

更新:解決しました!

それで、何が悪かったのですか?-> 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
}
}
?>
4

1 に答える 1

1

理解する必要があることの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   }
    }
}
?>
于 2012-10-12T19:44:46.043 に答える