包括来自外部文件的jQuery,有些功能有效,有些则无效

时间:2016-02-17 14:22:51

标签: javascript php jquery html

我正在开发一个网站,现在我想将每个文件中的所有脚本移动到一个文件,因此创建了core.js。我把它包含在index.php的头部 但问题是有些功能有效,有些则无效。看看我的部分代码:

JQuery(core.js的一部分):

//jQuery of myaccount.php
$('button#mypwdchange').on('click', function(e){
    var oldpword = $('input#oldpword').val();
    var newpword = $('input#newpword').val();
    var cnewpword = $('input#cnewpword').val();

        if (newpword == cnewpword){             
            $.post('includes/mypwdchange.php',{mypwdchange: 'dochange', myuserid : '<?php echo $myuserid; ?>', oldpword: oldpword, newpword: cnewpword},function(data){
                $('div#mypwdchangealert').text(data).hide().fadeIn(300);
            });
        }else{
            $('div#mypwdchangealert').text('Your new passwords doesnot match').hide().fadeIn(300);
        }

 e.preventDefault();
});  

我也尝试在$(document).ready(function(){...});中包含该功能。另外,我还尝试在html中的</body>标记之前加入core.js。

myaccount.php的内容

<h3>My Account</h3>

<div class="col-md-4">
<h4>Change Password</h4> <hr />
<form role="form">
<div class="form-group">
    <label for="oldpword">Old Password</label>
    <input type="password" class="form-control" id="oldpword" required/>
</div>
<div class="form-group">
    <label for="newpword">New Password</label>
    <input type="password" class="form-control" id="newpword" required/>
</div>
<div class="form-group">
    <label for="cnewpword">Confirm Password</label>
    <input type="password" class="form-control" id="cnewpword" required/>
</div>
<button type="submit" class="btn btn-default" id="mypwdchange">Change</button>
</form>
<div class="alert alert-info" id="mypwdchangealert">

</div>
</div>

当我在脚本标记之间的html文件中放入相同的脚本时,一切正常。还有一件有趣的事情是,当我将脚本放在外部文件中$.post('includes/mypwdchange.php'...函数有效但不返回预期答案时,另请参阅

mypwdchange.php

<?php 
include "../dbconfig.php";
if (isset($_POST['mypwdchange'])){
$changeid = $_POST['myuserid'];
$oldpword = $_POST['oldpword'];
$newpword = $_POST['newpword'];
$query0 = $con->prepare("select * from users where id = :id");
$query0->execute(array('id'=>$changeid));
$result0 = $query0->fetch(PDO::FETCH_ASSOC);
$oldpwordhash = $result0['password'];
if (password_verify($oldpword,$oldpwordhash)){
    $newpwordhash = password_hash($newpword, PASSWORD_DEFAULT);
    $query1 = $con->prepare("update users set password=:newpwordhash where id = :changeid");
    $query1->execute(array('newpwordhash'=>$newpwordhash, 'changeid'=>$changeid));
    if ($query1){
        echo "Password Changed Successfully!";
    }
}else{
    echo "Old Password is not valid.";
}
}
?>

问题是它始终返回“旧密码无效”。当我把jQuery放在core.js中但当我把jQuery放在myaccount.php中时一切正常

1 个答案:

答案 0 :(得分:0)

{。}}包含的行不会在.js文件中执行。

你需要将它们拉出来并在php文件中使用它的变量引用。或者你可以让你的js文件php文件,并确保返回正确的内容类型。