我正在使用Yii2表单使用带有http api的cURL检查域的可用性。
我的表单数据是这样的:
<?php $form = ActiveForm::begin(['id' => 'domain-check']); ?>
<?= $form->field($model, 'domain')->textInput(['autofocus' => true]) ?>
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>',]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'Search']) ?>
</div>
<?php ActiveForm::end(); ?>
并在我的控制器中 -
public function actionDomain()
{
$model = new DomainCheckerForm();
return $this->render('domainChecker', [
'model' => $model,
]);
if ($model->load(Yii::$app->request->post())) {
$domain=($_POST['DomainCheckerForm']['domain']);
$domain_arr = explode(".", $domain, 2);
$domain_name = $domain_arr[0];
$domain_tld = $domain_arr[1];
$user='xxxx';
$password='xxxxx';
$url= "https://httpapi.com/api/domains/available.json?auth-userid=$user&api-key=$password&domain-name=$domain_name&tlds=$domain_tld";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($curl);
curl_close($curl);
$data = json_decode($result, true);
foreach($data as $key => $val){
$classkey = $val['classkey'];
$status = $val['status'];
}
if($status=='available'){
echo 'Congratulation' . $domain.' is available';
}else{
echo 'Sorry' .$domain. 'is not available';
}
}
}
如果我在单独的操作中使用curl的一部分并将该操作添加到表单中,我会收到响应,但是在另一页上。
如果我保持代码与原样相同,除了表单之外没有任何显示为响应。
如何在表格提交页面上显示cURL回复?
我是否需要使用Jquery来实现相同的目标?