簡體   English   中英

我無法從PHP代碼中調用javascript函數

[英]I can't call a javascript function from within PHP code

注意 :我嘗試了所有我能想到的方法,但沒有成功。 我搜索了stackoverflow和Internet的其余部分,但無法提出可行的解決方案。 我在stackoverflow中找不到有關確切問題的問題。

我正在使用PHP和AngularJS制作一個虛擬應用程序,以在業余時間進行練習。 我有問題的應用程序部分是,它應該從新條目的表單中獲取輸入,如果成功,它應該將由條目制成的字典添加到常規數組中。 (然后,在另一頁上,此數組用於使用AngularJS形成顯示條目的表。這部分工作。)

我從表單獲取輸入,如果一切正常,那么它應該形成一個字典(這也可以),然后進行JavaScript函數調用,該函數將字典推入字典數組。 最后一部分不起作用。 我更改了被調用的函數,使其僅具有document.write(dict); ,該方法也不起作用。 所以我認為我在執行JavaScript函數調用時犯了一個錯誤,但是我不確定。

這是我的代碼:

 //controllers.js (function(){ angular .module("resumeBase") .controller("tabularList", listController); function listController() { var vm = this; vm.data = applicants; } var applicants = [ { firstname: "Nima", lastname: "Bavari", evaluation: 5, category: "IT & Computers", fileLocation: "", empConfirmed: "yes", confirmDate: "01-01-2017", employer: "EnDATA", payConfirmed: "yes" }, { firstname: "Ilkin", lastname: "Ali", evaluation: 5, category: "Design", fileLocation: "", empConfirmed: "no", confirmDate: "", employer: "", payConfirmed: "no" } ] function applicantFiller(applicant) { if (applicant.empConfirmed == "") { applicant.empConfirmed = "no"; applicant.payConfirmed = "no"; } } function addApplicant(dict) { applicants.push(dict); applicantFiller(dict); } })(); 
 //addNew.php <!DOCTYPE html> <html> <head> <title>resumeBase::Add New Entry</title> <link rel="stylesheet" type="text/css" href="style/main.css" /> </head><body> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.js"></script> <script type="text/javascript" src="scripts/engine.js"></script> <script type="text/javascript" src="scripts/controllers.js"></script> <div id="container"> <?php if (isset($_POST["submit"])) { $targetDir = "resumes/"; $targetFile = $targetDir . basename($_FILES["resume"]["name"]); $uploadFinish = 1; $fileType = pathinfo($targetFile, PATHINFO_EXTENSION); $fname = $_POST["firstname"]; $lname = $_POST["lastname"]; $eval = $_POST["evaluation"]; $cat = $_POST["category"]; if ($fileType != "doc" && $fileType != "docx" && $fileType != "odt" && $fileType != "pdf") { echo "<pre>Invalid file format!</pre>"; $uploadFinish = 0; } elseif ($_FILES["resume"]["size"] > 500000) { echo "<pre>File too large! Choose another file.</pre>"; $uploadFinish = 0; } elseif (file_exists ($targetFile)) { echo "<pre>File already exists! Choose another file or rename file.</pre>"; $uploadFinish = 0; } else { $uploadFinish = 1; } if ($uploadFinish == 0) { echo "<pre>File not uploaded!</pre>"; } else { if (move_uploaded_file($_FILES["resume"]["tmp_name"], $targetFile)) { echo "The file " . basename($_FILES["resume"]["name"]) . " uploaded."; $newApplicant = '{firstname: "' . $fname . '",'; $newApplicant .= 'lastname: "' . $lname . '",'; $newApplicant .= 'evaluation: ' . $eval . ','; $newApplicant .= 'category: "' . $cat . '",'; $newApplicant .= 'fileLocation: "' . $targetFile . '"}'; ?> <script type="text/javascript"> addApplicant(<?php echo $newApplicant; ?>); </script> <?php } else { echo "<pre>Error uploading file!</pre>"; } } } ?> <h1>Add New Entry</h1> <form action="" method="POST" enctype="multipart/form-data"> <input type="text" name="firstname" id="id_firstname" maxlength="20" placeholder="First Name" required="required" /> <input type="text" name="lastname" id="id_lasttname" maxlength="20" placeholder="Last Name" required="required" /> <select name="evaluation"> <option selected disabled>Give an Evaluation</option> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> <option value=4>4</option> <option value=5>5</option> </select><select name="category"> <option selected disabled>Choose Category...</option> <option value="IT & Computers">IT & Computers</option> <option value="Design">Design</option> <option value="Services">Services</option> <option value="Agriculture & Industry">Agriculture & Industry</option> <option value="Finance">Finance</option> <option value="Marketing & Sales">Marketing & Sales</option> <option value="Administrative">Administrative</option> <option value="Medical">Medical</option> <option value="Science & Education">Science & Education</option> <option value="Law">Law</option> <option value="Other">Other</option> </select> <input type="file" name="resume" id="id_resume" required="required" /> <input type="submit" name="submit" id="id_submit" value="Upload" /> </form> [<a href="index.php">Search</a>] </div> </body> </html> 

它不會給出任何錯誤,但也不會執行任何操作。

准備將JavaScript函數從文檔中移出。

//controllers.js
(function(){
    angular
        .module("resumeBase")
        .controller("tabularList", listController);

    function listController() {
        var vm = this;
        vm.data = applicants;
    }

    var applicants = [
        {
            firstname: "Nima",
            lastname: "Bavari",
            evaluation: 5,
            category: "IT & Computers",
            fileLocation: "",
            empConfirmed: "yes",
            confirmDate: "01-01-2017",
            employer: "EnDATA",
            payConfirmed: "yes"
        }, {
            firstname: "Ilkin",
            lastname: "Ali",
            evaluation: 5,
            category: "Design",
            fileLocation: "",
            empConfirmed: "no",
            confirmDate: "",
            employer: "",
            payConfirmed: "no"
        }
    ]
})();

function applicantFiller(applicant) {
    if (applicant.empConfirmed == "") {
        applicant.empConfirmed = "no";
        applicant.payConfirmed = "no";
    }
}

function addApplicant(dict) {
    applicants.push(dict);
    applicantFiller(dict);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM