如何从类访问函数到另一个PHP文件

约翰·弗朗西斯

我试图使用if条件从类中访问我的函数,其中包含SQL语句的函数要从另一个php文件中使用if条件访问它(如果存在),它将返回true。下面的代码。

main.html

< script type = "text/javascript"
src = "https://code.jquery.com/jquery-1.12.3.min.js" >
  < /script>
	
	<script>
				
	$(document).on("click", "#addBooksId", function() 
	{
      $.get("addBooks.html", function(data) 
	  { 
          $( "#myform" ).empty();
          $('#myform').append(data); / / Receive with value
alert('This is add books section');
});
});





< /script>
body {
  padding: 0;
  margin: 0;
  overflow-y: scroll;
  font-family: Arial;
  font-size: 15px;
}
#container {
  background-color: #707070;
}
#menu {
  width: 1250px;
  margin: 0 auto;
  text-align: left;
}
#menu ul {
  list-style-type: none;
  /*Remove bullets*/
  padding: 0;
  margin: 0;
  position: relative;
}
#menu ul li {
  display: inline-block;
}
#menu ul li:hover {
  text-decoration: none;
  color: black;
}
#menu ul li a,
visited {
  color: #CCC;
  /*Color of text*/
  display: block;
  /*Takes up the full width available*/
  padding: 15px;
  text-decoration: none;
}
#menu ul li a:hover {
  color: #CCC;
  text-decoration: none;
}
#menu ul li:hover ul {
  display: block;
}
#menu ul ul li {
  display: block;
}
#menu ul ul {
  display: none;
  position: absolute;
  background-color: #707070;
  min-width: 140px;
  /*Width when hover*/
}
#menu ul ul li a:hover
/*Color of text when hover*/

{
  color: #099;
}
<div id="container">

  <div id="menu">
    <ul>



      <li>

        <a href="#">Manage Books</a>

        <ul>
          <div id="addBooksId">
            <li><a href="#">Add Books</a>
            </li>
          </div>
        </ul>

      </li>





    </ul>
  </div>
</div>
<div id="myform">

  <p></p>
</div>

这是我的主页,用户可以在其中选择一个选项。单击下拉菜单中的选项后。它会将我重定向到addBooks.html用户将填写以下文本字段的位置。

addBooks.html

<style type="text/css"> .addBooks {
  clear: both;
  width: 800px;
  margin: 0 auto;
  margin-top: 10%;
}
.addBooks label {
  float: left;
  width: 150px;
  text-align: right;
}
.addBooks input {
  text-align: left;
  margin-left: 100px;
}
.addBooks select {
  text-align: left;
  margin-left: 100px;
}
</style>
<div id="container">

  <div class="addBooks">
    <h1>Add Books</h1>
    <hr>

    <form method="post" action="../process/bookProcess.php">

      <fieldset>

        <div class="form-field">
          <label for="name">Book Name:</label>
          <input type="text" id="name" name="bookName" required>
        </div>

        <br />

        <div class="form-field">
          <label for="edition">Edition:</label>
          <input type="text" id="edition" name="bookEdition" required>
        </div>

        <br />

        <div class="form-field">
          <label for="pages">Pages:</label>
          <input type="text" id="pages" name="bookPages" required>
        </div>

        <br />

        <div class="form-field">
          <label for="language">Language:</label>
          <input type="text" id="language" name="bookLanguage" required>
        </div>


        <div class="form-field">
          <input type="submit" id="submitBooks" value="Submit">
        </div>
      </fieldset>

    </form>

  </div>
  <!--- end of addBooks --->

</div>
<!--- end of container --->

connection.php

<?php
//PHP CONSTANTS
DEFINE ('host', 'localhost'); 
DEFINE ('username', 'root');
DEFINE ('password', '');
DEFINE ('database', 'librarysystem');

function getConnection()
{
$myDB = mysqli_connect(host,username,password,database);

if (!$myDB)
{
    trigger_error ('Could not connect to MySQL: ' . mysqli_connect_error());
}
else
{
    return $myDB;
}
}

?>

我创建了一个连接,因此我将仅从要使用的每个文件中调用它。在这里,我booksCRUD.php创建了一个受保护的字符串,以便可以在任何地方访问它。我已经在登录中使用了此方法。所以这是我第二次在INSERT语句中使用它。

bookCRUD.php

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

class booksCRUD{

    private $accessMyDB;

    public function __construct(){
       $this->accessMyDB = getConnection();
    } 

    public function createBook($dbBookName,$dbEdition,$dbPages,$dbLanguage){
        $statement = $this->accessMyDB->prepare("INSERT INTO bookmodule (bookName, bookEdition, bookPages, bookLanguage) VALUES (?, ?, ?, ?)");
        $statement->bind_param("ssss", $dbBookName,$dbEdition,$dbPages,$dbLanguage);

        if($statement->execute()){
            $statement->close();
            return true;
        }else{
            echo "Failed: " . $this->accessMyDB->error;
            return false;
        }
    }
}

?>

bookProcess.php

<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

require_once('../connection/connection.php');
require_once('../crud/bookCRUD.php');

if(isset($_POST['submitBooks'])){
    $dbBookName = $_POST['bookName'];
    $dbEdition = $_POST['bookEdition'];
    $dbPages = $_POST['bookPages'];
    $dbLanguage = $_POST['bookLanguage'];

    if(!empty($dbBookName) && !empty($dbEdition) && !empty($dbPages) && !empty($dbLanguage)){
        $obj = new booksCRUD();
        if(method_exists($obj,'createBook')){
           if($obj->createBook($dbBookName,$dbEdition,$dbPages,$dbLanguage)){
                echo "Successful!";
            }else{
                echo "error";
            }
        }else{
            // method doesn't exist
        }
    }else{
        echo "all fields are required";
    }
}
?>

我在if条件下创建了一个对象,但是如果我做错了,我将无法访问我的函数。

拉吉普·保罗(Rajdeep Paul)

使用method_exists()函数检查方法是否存在,然后调用该方法,如下所示:

if(method_exists(new booksCRUD,'createBook')){
    // method exists
}else{
    // method doesn't exist
}

更新:

您的代码中有几个错误,例如:

  • 看到这句话,

    $dbLanguange = $_POST['bookLanguage'];
             ^ it should be $dbLanguage
    
  • 查看您的if条款的条件

    if(!empty($dbBookName) && !empty($dbEdition) && !empty($dbPages) && empty($dbLanguage))
                                                                        ^ it should be !empty($dbLanguage)
    
  • 由于您不打算访问$accessMyDB类之外的属性booksCRUD,因此最好这样做private

  • 看到这一行,

    echo "Error" . $mysqli->error();
    

您的连接处理程序$mysqli在此范围内不可用。

因此解决方案是,保持您的connection.php不变,通过以下方式更改bookCRUD.phpbookProcess.php

bookCRUD.php:

<?php

    class booksCRUD{

        private $accessMyDB;

        public function __construct(){
           $this->accessMyDB = getConnection();
        } 

        public function createBook($dbBookName,$dbEdition,$dbPages,$dbLanguage){
            $statement = $this->accessMyDB->prepare("INSERT INTO bookmodule (bookName, bookEdition, bookPages, bookLanguage) VALUES (?, ?, ?, ?)");
            $statement->bind_param("ssss", $dbBookName,$dbEdition,$dbPages,$dbLanguage);

            if($statement->execute()){
                $statement->close();
                return true;
            }else{
                echo "Failed: " . $this->accessMyDB->error;
                return false;
            }
        }
    }

?>

bookProcess.php:

<?php

    session_start();
    require_once('../connection/connection.php');
    require_once('../crud/booksCRUD.php');

    if(isset($_POST['submitBooks'])){
        $dbBookName = $_POST['bookName'];
        $dbEdition = $_POST['bookEdition'];
        $dbPages = $_POST['bookPages'];
        $dbLanguage = $_POST['bookLanguage'];

        if(!empty($dbBookName) && !empty($dbEdition) && !empty($dbPages) && !empty($dbLanguage)){
            $obj = new booksCRUD();
            if(method_exists($obj,'createBook')){
               if($obj->createBook($dbBookName,$dbEdition,$dbPages,$dbLanguage)){
                    echo "Successful!";
                }else{
                    echo "error";
                }
            }else{
                // method doesn't exist
            }
        }else{
            echo "all fields are required";
        }
    }

?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从一个js文件调用函数到另一个

来自分类Dev

AngularJS 函数到另一个文件

来自分类Dev

从另一个PHP文件的类函数访问变量

来自分类Dev

从另一个PHP文件的类函数访问变量

来自分类Dev

PHP如何从另一个类和另一个文件调用函数?

来自分类Dev

如何在Azure中从一个csx文件调用函数到另一个csx文件?

来自分类Dev

从另一个文件调用一个函数到另一个函数C ++

来自分类Dev

您如何访问另一个类中一个类的成员函数?

来自分类Dev

PHP如何从另一个类调用函数?

来自分类Dev

C ++如何使用从一个函数到另一个函数的变量?

来自分类Dev

如何乘/除一个函数到另一个?如何使用参数?

来自分类Dev

如何在烧瓶中调用一个函数到另一个

来自分类Dev

如何从另一个类参数访问类构造函数参数

来自分类Dev

从MainActivity类的另一个函数访问WebView

来自分类Dev

如何在一个类中定义/声明一个变量,以便可以在PHP的另一个文件中访问它?

来自分类Dev

如何在另一个函数的for循环中使用函数到python中

来自分类Dev

如何从另一个PHP文件调用一个PHP函数

来自分类Dev

如何从同一类的另一个函数访问一个函数中的变量?

来自分类Dev

PHP - 从另一个类调用类函数

来自分类Dev

如何访问同一实例中另一个类中的函数?

来自分类Dev

从另一个类文件访问MainForm

来自分类Dev

如何从外部javascript文件访问嵌入到另一个函数中的函数?

来自分类Dev

从另一个文件访问内联函数

来自分类Dev

从另一个文件访问非成员函数

来自分类Dev

如何在另一个文件的类之外定义类构造函数?

来自分类Dev

如何从另一个函数传递的单独类中访问DataGrid

来自分类Dev

如何在另一个函数python中访问返回类值

来自分类Dev

OMNET++ 如何访问另一个类中的函数或变量

来自分类Dev

在另一个PHP文件中访问类变量

Related 相关文章

  1. 1

    如何从一个js文件调用函数到另一个

  2. 2

    AngularJS 函数到另一个文件

  3. 3

    从另一个PHP文件的类函数访问变量

  4. 4

    从另一个PHP文件的类函数访问变量

  5. 5

    PHP如何从另一个类和另一个文件调用函数?

  6. 6

    如何在Azure中从一个csx文件调用函数到另一个csx文件?

  7. 7

    从另一个文件调用一个函数到另一个函数C ++

  8. 8

    您如何访问另一个类中一个类的成员函数?

  9. 9

    PHP如何从另一个类调用函数?

  10. 10

    C ++如何使用从一个函数到另一个函数的变量?

  11. 11

    如何乘/除一个函数到另一个?如何使用参数?

  12. 12

    如何在烧瓶中调用一个函数到另一个

  13. 13

    如何从另一个类参数访问类构造函数参数

  14. 14

    从MainActivity类的另一个函数访问WebView

  15. 15

    如何在一个类中定义/声明一个变量,以便可以在PHP的另一个文件中访问它?

  16. 16

    如何在另一个函数的for循环中使用函数到python中

  17. 17

    如何从另一个PHP文件调用一个PHP函数

  18. 18

    如何从同一类的另一个函数访问一个函数中的变量?

  19. 19

    PHP - 从另一个类调用类函数

  20. 20

    如何访问同一实例中另一个类中的函数?

  21. 21

    从另一个类文件访问MainForm

  22. 22

    如何从外部javascript文件访问嵌入到另一个函数中的函数?

  23. 23

    从另一个文件访问内联函数

  24. 24

    从另一个文件访问非成员函数

  25. 25

    如何在另一个文件的类之外定义类构造函数?

  26. 26

    如何从另一个函数传递的单独类中访问DataGrid

  27. 27

    如何在另一个函数python中访问返回类值

  28. 28

    OMNET++ 如何访问另一个类中的函数或变量

  29. 29

    在另一个PHP文件中访问类变量

热门标签

归档