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时它运行时,它会返回正确的值,所以我认为我用javascript或HTML做了一些不好的事。
答案 0 :(得分: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 console。
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');
}
});
}