1

クライアント名が存在するかどうかを確認してから、作成しないようにします。
機能とすべてが完璧に機能しています。
私が必要としているのは、関数が ajax 関数に true または false を返すことです。

私のjsとajaxの作成関数は次のとおりです。

function createClient(){
       var newClientForm = $$('newClientForm').getValues();
       var client_name = newClientForm.client_name;

       if (client_name != ''){
       url_call = window.server_name + "/index.php/clients/create_new_client/"+client_name; 
       url_call = url_call.replace(/\n/g, '|');
       $.ajax({
              url: url_call ,               
              success: function(data) {
                       if ((data==true)||(data==false)){
                            alert('data true');
                        }


              }     
        }); 
        }else{            
            dhx.alert({title:'Error', message:"Please enter the client name."});
        }
    };

そしてcakephpの私のコントローラ

function create_new_client($string = null){
            $this->layout = 'default_really_empty';
            $string = urldecode($string);
            $explode_item = explode('^', $string);

            $client_name        = $explode_item[0]; 

            //--Sreach if the Client is already there don't create it
            $modelClassChild = 'Client';
            $this->loadModel($modelClassChild);                
            $objects=$this->$modelClassChild->find('all',array('conditions'=>array($modelClassChild .'.deleted'=>'0', 
                                                                                   $modelClassChild .'.name'=>$client_name)));
            foreach($objects as $object) { 
                $dbName = $object['Client']['name'];
            }                

            if ($client_name != $dbName){  
            //--Sreach if the Client is already there don't create it
                $clientArray = array();
                $fields = array();

                $clientArray['Client']['name']  = $client_name;
                $fields[] = 'name';

                $client_exists = FALSE;                    

                $this->Client->create();
                $this->Client->save($clientArray, true); 
           }else{
               $client_exists = TRUE;                   
           }
           $this->set('client_exists',$client_exists);
    }
4

1 に答える 1

0

ブール値を返します

if ($client_name != $dbName){  
    //--Sreach if the Client is already there don't create it
    $clientArray = array();
    $fields = array();

    $clientArray['Client']['name']  = $client_name;
    $fields[] = 'name';


    $this->Client->create();
    $this->Client->save($clientArray, true); 

    return false;                    

}else{
    return true;                   
}

ajax の成功コールバックを次のように確認します。

success: function(data) {
    if ((data==0)||(data==1)){
        alert('data true');
    }
}
于 2012-10-19T11:13:05.067 に答える