クライアント名が存在するかどうかを確認してから、作成しないようにします。
機能とすべてが完璧に機能しています。
私が必要としているのは、関数が 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);
}