我在表单中有一个文本区域框,让用户输入他们的公司注册号,如下所示:
<input type='text' name='creg' id="field_creg">
基本上我想要做的是,当用户在文本区域框中输入注册号时,我想使用这个php curl脚本来检查是否存在url。
<?php
$url = 'http://data.companieshouse.gov.uk/doc/company/$creg';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (200==$retcode) {
echo "This is a valid Company Number";
} else {
echo "This is NOT a valid Company Number";
}
?>
我正在使用公司的房屋URI,您可以输入此网址&#39; http://data.companieshouse.gov.uk/doc/company/&#39;然后是公司编号,告诉你公司是否存在。
如果输入的公司号码有效,它将带您进入公司网站上的信息页面,并告诉您该公司,如果它不存在,它将带您到他们的错误404页面。 PHP curl基本上检查这个结果,如果公司号码有效,它将回显&#34;这是一个有效的公司编号&#34;否则它将回响&#34;这不是有效的公司编号&#34;。
所以现在我想找到一种能够在表单提交之前检索文本或输入到textarea的值的方法,这样我就可以放置&#39; creg&#39; /&#39的值; $ CREG&#39;到网址的末尾看起来像这样:
http://data.companieshouse.gov.uk/doc/company/$creg
所以,如果我将公司号码12345678输入textarea框,那么网址将是
http://data.companieshouse.gov.uk/doc/company/12345678
然而,我试图让它实时检查,因为用户在提交之前将数字输入文本区域。可以这样做吗?
所以最终的结果是,当用户在textarea中键入公司注册号时,它会在输入时说明它是否有效。
如果有人能告诉我这样做的话,我真的很感激,谢谢
答案 0 :(得分:0)
做实时事情&#39;你需要ajax。
使用jquery进行ajax调用非常简单(和跨平台),因此我会编写需要它的代码。
假设check_valid.php
是验证输入的脚本,并在公司编号有效时打印。
$("#field_creg").keypress(function(){
value = parseInt($(this).val());
$.ajax({
type: 'POST',
url : "check_valid.php",
data: {
'creg': value,
},
success: function(data){
// Here data is filled with whatever 'check_valid.php' echoes
// Show data
}
});
});
答案 1 :(得分:0)
您可以通过jquery将$ creg发送到curl.php然后运行curl脚本并获取该号码的信息是否有效。
发送creg数据单击验证按钮:
$("#checkValidCompanyNumberButton").click(function(){
var creg = $('#creg').val();
$.post("curl.php",
{
creg: creg
},
function(data){
if(data== 1){
alert('Valid');
}
else{
alert('Not Valid');
}
});
});
在curl.php中
<?php
$creg = $_POST['creg'];
$url = 'http://data.companieshouse.gov.uk/doc/company/$creg';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
$retcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if (200==$retcode) {
echo 1;
} else {
echo 2;
}
?>