如何使用PHP在表单提交页面上显示cURL响应

时间:2016-10-25 11:30:08

标签: php jquery forms curl yii2

我正在使用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来实现相同的目标?

0 个答案:

没有答案