2017-03-15 13 views
1

おはよう、誰も私をここで助けてくれるでしょうか?私はこのコードを持っている:私は何をしたいかphpフォームからjavascript関数を呼び出す

if (isset($_POST['sChanges'])) { 
$dbC = new imsFunction(); 

$oldPasswrd = $dbC->txtInput($_POST['oldPass']); 
$newPasswrd = $dbC->txtInput($_POST['newPass']); 
$confPasswrd = $dbC->txtInput($_POST['confPass']); 
$idNumber = $_SESSION['eID']; 

if ($newPasswrd <> $confPasswrd) { 
    $_SESSION['passConfirm'] = FALSE; 
    echo '<script language="javascript">'; 
    echo 'window.location = "change_Passwd.php";'; 
    echo '</script>'; 
} else 

    $dbQry = $dbC->sRowQry('Select * From tbl_endUser Where id_number = ? and id_key = ?',[$idNumber, $oldPasswrd]); 

    if ($dbQry->rowCount() > 0) { 
     $changePass = $dbC->qryExec('Update tbl_endUser Set id_key=? Where id_number=?',[$newPasswrd, $idNumber]); 
     $_SESSION['passChange'] = TRUE; 
     echo '<script language="javascript">'; 
     echo 'window.location = "change_Passwd.php";'; 
     echo '</script>'; 
    } else { 
     $_SESSION['wrongPass'] = FALSE; 
     echo '<script language="javascript">'; 
     echo 'window.location = "change_Passwd.php";'; 
     echo '</script>'; 
    } 

    $dbC->disConnect(); } 

がある:ボタンをクリックします送信すると

<form id="form_advanced_validation" method="POST" action=""> 
<div class="row clearfix"> 
    <div class="col-md-10"> 
     <div class="form-group form-float"> 
      <div class="form-line"> 
       <input type="password" class="form-control" name="oldPass" required> 
       <label class="form-label">Old Password</label> 
      </div> 
     </div> 
    </div> 
</div> 
<div class="row clearfix"> 
    <div class="col-md-10"> 
     <div class="form-group form-float"> 
      <div class="form-line"> 
       <input type="password" class="form-control" name="newPass" required> 
       <label class="form-label">New Password</label> 
      </div> 
     </div> 
    </div> 
</div> 
<div class="row clearfix"> 
    <div class="col-md-10"> 
     <div class="form-group form-float"> 
      <div class="form-line"> 
       <input type="password" class="form-control" name="confPass" required> 
       <label class="form-label">Confirm Password</label> 
      </div> 
     </div> 
    </div> 
</div> 
<button class="btn btn-primary waves-effect" type="submit" name="sChanges">SUBMIT</button> 

は、それがパスワード変更手順を処理しますが、これはコードです"$ _SESSION [ 'passChange']は、" 私はこのjavascript関数を呼び出すしたいと思い、設定されています:

function showSuccessMessage() { 
swal("Good job!", "Password has been changed!", "success");} 

I試しました:

if (isset($_SESSION['passConfirm'])) { echo '<script type="javascript"> showSuccessMessage(); </script>'; } 

何も起こりませんでした。皆さん、お手伝いください。

+0

ここで間違った変数名があると思います。 ** $ _セッション['passChange']または$ _SESSION ['passConfirm'] **? – reza

+0

あなたはこのメッセージをスクリプトなしで与えることができます。 –

+0

エラーは修正されましたが、関数showSuccessMessage()は呼び出されていないようです。 –

答えて

1

各ページの先頭にsession_start();を使用することを忘れないでください。

functionを呼び出す前に、echo $_SESSION['passConfirm'];を使用してセッションが確実に設定されていることを確認してください。

上記の2つの事柄に基づいてコードを修正してください。

+0

これは@Rk Malbaciasでうまくいくと思います。 –

+0

ありがとうございます。 session_start();が各ページに存在する場合、$ _SESSION ['passChange']/['passConfirm']が設定されています。実際には、その後パスワードが変更されています。ただし、関数showSuccessMessage(){ swal( "Good job!"、 "Password has been changed!"、 "success");}は呼び出されませんでした。 –

関連する問題