0

Yii を使用して Web ページを作成しています。私がページを作成したとき、Yii は以下と非常によく似たフォームを作成しました。

<?php
/* @var $this SiteController */
/* @var $model ContactForm */
/* @var $form CActiveForm */

$this->pageTitle=Yii::app()->name . ' - Contact';
$this->breadcrumbs=array(
'Contact',
);
?>

<?php if(Yii::app()->user->hasFlash('contact')): ?>

<div class="flash-success">
    <?php echo Yii::app()->user->getFlash('contact'); ?>
</div>

<?php else: ?>

<div class="form">

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'contact-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
    'validateOnSubmit'=>true,
),
)); ?>

<p class="note"><?php echo Yii::t('app','Fields with');?> <span class="required">*</span> <?php echo Yii::t('app','are required.');?></p>

<?php echo $form->errorSummary($model); ?>

<div class="row">
    <?php echo $form->labelEx($model,'name'); ?>
    <?php echo $form->textField($model,'name'); ?>
    <?php echo $form->error($model,'name'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'email'); ?>
    <?php echo $form->textField($model,'email'); ?>
    <?php echo $form->error($model,'email'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'subject'); ?>
    <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>128)); ?>
    <?php echo $form->error($model,'subject'); ?>
</div>

<div class="row">
    <?php echo $form->labelEx($model,'body'); ?>
    <?php echo $form->textArea($model,'body',array('rows'=>6, 'cols'=>50)); ?>
    <?php echo $form->error($model,'body'); ?>
</div>

<?php if(CCaptcha::checkRequirements()): ?>
<div class="row">
    <?php echo $form->labelEx($model,'verifyCode'); ?>
    <div>
    <?php $this->widget('CCaptcha'); ?>
    <?php echo $form->textField($model,'verifyCode'); ?>
    </div>
    <div class="hint"><?php echo Yii::t('app','Please enter the letters as they are shown in the image above.');?>
    <br/><?php echo Yii::t('app','Letters are not case-sensitive.');?></div>
    <?php echo $form->error($model,'verifyCode'); ?>
</div>
<?php endif; ?>

<div class="row buttons">
    <?php echo CHtml::submitButton('Submit'); ?>
</div>

<?php $this->endWidget(); ?>

</div><!-- form -->

<?php endif; ?> 

最初はこのフォームが機能していましたが、その後、さらに機能を追加して Web ページを改善しました。数分前、すべてのページをチェックしていたところ、リロードされたキャプチャ ボタンが機能しないことがわかりました。ここで、キャプチャをリロードしようとすると、Web ページがリロードされ、次のコードで空のページが表示されます。

{"hash1":774,"hash2":774,"url":"\/MyApp\/site\/captcha.html?v=526045d3d1187"}

Googleで同様のエラーを検索しようとしましたが、何も見つかりませんでした。正直なところ、何が起こっているのか理解できません。私の Web ページの別のファイルに追加したコードがこのエラーを生成していると思いますが、まったくわかりません...このコードの意味がわかりません。

助けてください!

誰かが私を助けることができますか?ありがとう

編集:

ブラウザで Web ページのソース コードを表示し、「captcha.html」を検索すると、次のコードが表示されます。

<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
jQuery('#yw0').after("<a id=\"yw0_button\" href=\"\/MyApp\/site\/captcha.html?refresh=1    \">Obtenga un nuevo c\u00f3digo<\/a>");
jQuery(document).on('click', '#yw0_button', function(){
jQuery.ajax({
    url: "\/MyApp\/site\/captcha.html?refresh=1",
    dataType: 'json',
    cache: false,
    success: function(data) {
        jQuery('#yw0').attr('src', data['url']);
        jQuery('body').data('captcha.hash', [data['hash1'], data['hash2']]);
    }
});
return false;
});

しかし、どこにも captcha.html が見つかりませんでした...

編集 2: 問題が見つかりました。Web ページのメイン ページの最後に JavaScript コードを追加しました。私はこれを追加しました:

<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-1.4.1.min.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-photostack.js"></script>
<script type="text/javascript" src="<?php echo Yii::app()->theme->baseUrl; ?>/scripts/jquery-coin-slider.min.js"></script>

このコードを削除すると、キャプチャを正しくリロードできます。誰か、私がここで悪いことをしていることを教えてください。私のjavascriptコードがこれを生成するのはなぜですか? どうすれば解決できますか?

4

1 に答える 1