0

私はcakephp 2.3.0を使用しています。かなり長い間マニュアルを検索しましたが、答えが見つかりませんでした。また、インターネットを検索しましたが、探しているものが見つかりません。SO、私はここに私の質問を投稿しています。注意してください、私はcakephpにかなり慣れていません。

シナリオ:

  • アクティビティと郵便番号の 2 つのフィールドを持つ単純なフォームがあります。
  • フォームで POST を使用しています。
  • これらのフィールドに値を入力して送信すると、それらの「投稿」値/パラメーターがエコーされ、ブラウザー画面に表示されます。入力した内容は画面に表示されますが、フォームに入力した内容の末尾に数字の「1」が追加されます。
  • ここに例があります。これらの値を「walk」と「44555」の形式で入力します。次に、[送信] をクリックします。投稿はコントローラーのアクションに送られ、それがビューを呼び出します。私のビューはブラウザ画面に表示され、それらの「投稿」値をエコーアウトします。画面上の結果は「walk1」と「445551」です。
  • 例 #2: 上記の手順に従い、フォームに値を入力しない場合 (後でエラー チェックを追加します)、ブラウザー画面に表示されるのは '1' と '1' です。

フォームの POST 値に値「1」が追加される理由がわかりません。助けようとしている誰かから要求された場合は、この投稿に他の追加の PHP コードを含めることを嬉しく思います。

これが私のFORMコードです(私の見解から)... DIVヘルパーがあることは知っていますが、後で説明します:

echo $this->Form->create(null, array('url' => array('controller'=>'activities', 'action'=>'results'))); ?>
        <div class="box1" style="position:relative; top:10px; left:10px; float: left;"> 
            Search here.... <br>
            <hr>

                <?php echo $this->Form->input('activityName', array('size'=>'30', 
                                            'label'=>'Activity Name:', 'value'=>'i.e. walking, etc.'));?>
                <br>            
                <?php echo $this->Form->input('zip', array('size'=>'7', 'label'=>'Postal Code:')); ?>
            <br>
        </div>
    <div class="box1" align="right"> 
                <?php echo $this->Form->end('Go Search');?>
        </div>

これが私のコントローラーコードです:

<?php

    class ActivitiesController extends AppController {

        public $helpers = array('Html', 'Form');

        public function index() {
            //other code....            
        }

        public function results() {
            $this->layout = 'second';    
            $name = $this->request->data['Activity']['activityName'];
            $pCode = $this->request->data['Activity']['zip'];
            $this->set('theName', $name);
            $this->set('theZip', $pCode);
            $this->set('results', $this->Activity->
                    find('all', array('conditions' => array('name' => $name, 'postal_code' => $pCode)))); 

            $this->set('title_for_layout', 'Results');
            $this->render();
        }
    }       
?>

私の最終的なビューコード。コードの一部を省略しました...重要な部分を示すだけです:

<div style="position:relative; top:10px; left:5px; "> 
    <?php echo print_r($theName); ?>
        <br>
    <?php echo print_r($theZip); ?>

ありがとう

4

1 に答える 1

5

は、 (つまり)の1戻り値を出力することから来ます。print_r()true1

言い換えれば、あなたはやるべきではなくecho print_r()、ただやるだけですprint_r()。関数はそれ自体で印刷を処理します。結果を手動で印刷する必要はありません。

(また、print_r()デバッグ時を除いて、値を出力するのに最適な選択になることはほとんどありません。その場合でも、CakePHP のdebug()方がはるかに適しています。)

于 2013-02-14T20:41:11.760 に答える