2

PHP - alexa.php

<?
$url = filter_var($_GET['url'], FILTER_SANITIZE_URL);
$xml = simplexml_load_file('http://data.alexa.com/data?cli=10&dat=snbamz&url='.$url);
$rank=isset($xml->SD[1]->POPULARITY)?$xml->SD[1]->POPULARITY->attributes()->TEXT:0;
web == (string)$xml->SD[0]->attributes()->HOST;
echo $rank;
?>

Javascript-alexa.js

function alexa() {
 var $btn = $('#buttonreg');
 var $input = $('#domain');
 var url = $.trim($input.val());
 $.get('alexarank.php?url='+url, function(data){
  var alexa = parseInt(data);
  if ($.trim(data) == '' || alexa < 500000)
  {
   alert('We don't accept sites with alexa rank higher than 500.000.');
   $btn.attr('disabled', 'disabled');
  }
   else
    {
     $btn.removeAttr('disabled');
    }
  }, 'text');
}

HTML - page.html

<input id="domain" class="txt" type="text" name="domain" size="25" value="" maxlength="255" onblur="alexa()"></input>

我需要回应错误警报('我们不接受 alexa 排名高于 500.000 的网站。');当用户在注册表单上添加他的网站时,如果他的网站 Alexa 排名小于 500.000。我已经测试过了,它不起作用,它什么也没做。从 php 开始测试它,当我进入浏览器http://www.testingsite.com?url=http://www.google.com时,php 可以工作,它返回正确的值,所以我认为我已经做了一些事情javascript 或 HTML 不好。

4

1 回答 1

3

我会澄清我在评论中提到的内容。

alert('We don't accept sites with alexa rank higher than 500.000.');

应该替换为

alert("We don't accept sites with alexa rank higher than 500.000.");

第一个(您的代码中有)有不匹配的引号,显然会破坏其余代码。您在“不要”中使用的单引号破坏了一切。

编辑:

将您的代码更改为此并尝试。如果仍然不起作用,请检查 js 控制台。

function alexa() {
 var $btn = $('#buttonreg');
 var $input = $('#domain');
 var url = $.trim($input.val());
 $.get('alexarank.php?url='+url, function(data){
  if( typeof(data) == "undefined" ) return false;
  var alexa = parseInt(data);
  if ($.trim(data) == '' || alexa < 500000)
  {
   alert('We do not accept sites with alexa rank higher than 500.000.');
   $btn.attr('disabled', 'disabled');
  }
   else
    {
     $btn.removeAttr('disabled');
    }
  });
}
于 2013-09-25T11:52:01.687 回答