اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

استخدم سكربت Mysqli CRUD - Data Management System 

طريقة عمل السكربت عند اضافة سجل جديد من خلال form لا يتم اضافته مباشرة الى قاعدة البيانات بل يوجد شاشة confirm.

أريد حذف شاشة confirm لكن validation  على form مربوط بشاشة confirm h.

كيف أحذف شاشة confirm مع الاحتفاظ بvalidation  على form؟

رابط السكربت اونلاين

الكود المسؤول عن ذلك:

switch ($this->action) {
			case 'copy_confirm' :
			case 'form_confirm' :
				$saveOnclick = "$('#action_type').val('save'); $('#".$this->uid."').submit();";
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn btn-success',
						'onclick' => $saveOnclick
				), btn_save ) );
				$backOnclick = "$('#action_type').val('back'); $('#".$this->uid."').submit();";
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn ',
						'onclick' => $backOnclick
				), btn_back ) );
				$fieldset->addChildren ( $controlGroup );
				break;
			case 'view' :
				$queryString [$this->actionKey] = 'index';
				if (isset ( $queryString ['key'] )) {
					unset ( $queryString ['key'] );
				}
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn ',
						'href' => '?' . http_build_query ( $queryString, '', '&' )
				), btn_cancel ) );
				$fieldset->addChildren ( $controlGroup );
				break;
			case 'delete' :
				$deleteOnclick = "$('#action_type').val('delete'); $('#".$this->uid."').submit();";
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn btn-danger',
						'onclick' => $deleteOnclick
				), btn_delete ) );
				$queryString [$this->actionKey] = 'index';
				if (isset ( $queryString ['key'] )) {
					unset ( $queryString ['key'] );
				}
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn ',
						'href' => '?' . http_build_query ( $queryString, '', '&' )
				), btn_cancel ) );
				$fieldset->addChildren ( $controlGroup );
				break;
			case 'form' :
			default :
				$confirmOnclick = "$('#action_type').val('confirm'); $('#".$this->uid."').submit();";
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn btn-success',
						'onclick' => $confirmOnclick
				), btn_confirm ) );
				$queryString [$this->actionKey] = 'index';
				if (isset ( $queryString ['key'] )) {
					unset ( $queryString ['key'] );
				}
				$fa->addChildren ( new HtmlTag ( 'a', array (
						'class' => 'btn',
						'href' => '?' . http_build_query ( $queryString, '', '&' )
				), btn_cancel ) );
				$fieldset->addChildren ( $controlGroup );
				break;
		}

ثم هذا الكود 

if (! empty ( $_POST ) && $_POST ['token'] == $_SESSION [$this->uid] [$_POST ['token_key']] && $this->uid . "_auth_token" . '_' . md5 ( $tokenId ) == $_POST ['token_key']) {
			switch ($_POST ['action_type']) {
				case 'confirm' :
					$error = $this->dataProcessing ();
					if (! empty ( $error )) {
						$errors ['data_processing'] = $error;
					}
					$action = $this->action . '_confirm';
					if (! empty ( $this->validates )) {
						if (! class_exists ( 'AbstractValidator' )) {
							require dirname ( __FILE__ ) . '/validation/AbstractValidator.php';
						}
						if (! class_exists ( 'FormValidator' )) {
							require dirname ( __FILE__ ) . '/validation/FormValidator.php';
						}

						$formValidator = new FormValidator ();
						foreach ( $this->validates as $field => $args ) {
							$type = $args [1];
							$aryType = explode ( '_', $type );
							$class = '';
							if (! empty ( $aryType )) {
								foreach ( $aryType as $t ) {
									if (! empty ( $t )) {
										$class .= ucfirst ( strtolower ( $t ) );
									}
								}
							}
							$class .= 'Validator';

							if (! class_exists ( $class )) {
								require dirname ( __FILE__ ) . '/validation/' . $class . '.php';
							}
							$hidden = new InputHiddenTag ( array (
									'name' => $this->uid . '.' . $field
							) );
							if (isset ( $this->alias [$field] )) {
								$name = $this->alias [$field];
							} else {
								$name = '';
								$tmp = explode ( '.', $field );
								foreach ( $tmp as $t ) {
									$name .= ucfirst ( $t );
								}
							}
							$validator = new $class ( $field, $name, $hidden->getValue () );
							if (method_exists ( $validator, 'init' )) {
								$validator->init ( $args );
							}
							$formValidator->addValidator ( $validator );
						}
						if (! $formValidator->validate ()) {
							$errors = array_merge ( $errors, $formValidator->errors );
							$action = $this->action;
						}
					}
					break;
				case 'save' :
					$editFlag = true;

					if (! empty ( $this->primaryKeys )) {
						foreach ( $this->primaryKeys as $k3 => $v3 ) {
							foreach ( $v3 as $v4 ) {
								if ($k3 == $this->table) {
									if (empty ( $_POST [$this->uid] [$k3] [$v4] ) || trim ( $_POST [$this->uid] [$k3] [$v4] ) == '') {
										$editFlag = false;
										break;
									}
								}
							}
							if ($editFlag == false) {
								break;
							}
						}
					}
					$queryString = $this->queryString;
					$queryString [$this->actionKey] = 'index';
					if (isset ( $queryString ['key'] )) {
						unset ( $queryString ['key'] );
					}
					$req = $this->getData ();

					if ($editFlag == false) {
						if (! empty ( $this->callback ['BEFORE_INSERT'] )) {
							foreach ( $this->callback ['BEFORE_INSERT'] as $callback ) {
								if (isset ( $callback [1] ) && file_exists ( $callback [1] )) {
									require_once $callback [1];
								}
								if (is_callable ( $callback [0] )) {
									$req = call_user_func ( $callback [0], $this, $req );
								}
							}
						}

						$this->insert ( $req, $this->table );

						if (! empty ( $this->callback ['AFTER_INSERT'] )) {
							foreach ( $this->callback ['AFTER_INSERT'] as $callback ) {
								if (isset ( $callback [1] ) && file_exists ( $callback [1] )) {
									require_once $callback [1];
								}
								if (is_callable ( $callback [0] )) {
									call_user_func ( $callback [0], $this, $req, $this->insetId );
								}
							}
						}
						$this->redirect ( "?" . http_build_query ( $queryString, '', '&' ) );
					} else {
						if (! empty ( $this->callback ['BEFORE_UPDATE'] )) {
							foreach ( $this->callback ['BEFORE_UPDATE'] as $callback ) {
								if (isset ( $callback [1] ) && file_exists ( $callback [1] )) {
									require_once $callback [1];
								}
								if (is_callable ( $callback [0] )) {
									$req = call_user_func ( $callback [0], $this, $req );
								}
							}
						}
						$this->update ( $req, $this->table );
						if (! empty ( $this->callback ['AFTER_UPDATE'] )) {
							foreach ( $this->callback ['AFTER_UPDATE'] as $callback ) {
								if (isset ( $callback [1] ) && file_exists ( $callback [1] )) {
									require_once $callback [1];
								}
								if (is_callable ( $callback [0] )) {
									call_user_func ( $callback [0], $this, $req, $this->insetId );
								}
							}
						}
						$this->redirect ( "?" . http_build_query ( $queryString, '', '&' ) );
					}
					break;
				default :
					$action = $this->action;
					break;
			}

شكرا

Recommended Posts

لا توجد أي إجابات على هذا السؤال بعد

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...