Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过单击按钮调用类函数_Php - Fatal编程技术网

Php 如何通过单击按钮调用类函数

Php 如何通过单击按钮调用类函数,php,Php,我有一个PHP类,它有一个插入数据的方法。创建类的实例后,我不确定如何调用该方法。我已经了解了如何完成调用方法,但是没有一个涉及调用类实例的方法 我的PHP是: <?php $servername = "localhost"; $username = "kevin"; $password = "ally"; $database = "test"; // Create connection $conn = new mysqli($servername, $username, $passw

我有一个PHP类,它有一个插入数据的方法。创建类的实例后,我不确定如何调用该方法。我已经了解了如何完成调用方法,但是没有一个涉及调用类实例的方法

我的PHP是:

<?php

$servername = "localhost";
$username = "kevin";
$password = "ally";
$database = "test";

// Create connection
$conn = new mysqli($servername, $username, $password, $database);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

if(isset($_POST['btnInsert']) && ($_POST['btnInsert'] == "Insert"))
{
    $Dog = new Dog($_POST['txtName'], $_POST['txtSize'], $_POST['txtColor'], $_POST['txttype'], $_POST['txtDescription']);
}

class Dog
{
    public $name = "Dog Name";
    public $size = 0;
    public $color = "255:255:255";
    public $typeName = "type Name";
    public $typeDescription = "type Description";

    public function Dog($name, $size, $color, $type, $description){
        $this->name = $name;
        $this->size = $size;
        $this->color = $color;
        $this->typeName = $type;
        $this->typeDescription = $description;  
    }

    public function InsertDog(){
        $query = "SELECT Id from tbl_type WHERE Name = $typeName";
        $result = mysqli_query($conn, "INSERT INTO tbl_type($this->typeName, $this->$typeDescription)") or die("Query fail: " . mysqli_error());
        $result2 = mysqli_query($conn, "INSERT INTO tbl_Dog($this->$name, $this->$size, $this->$color, $query)") or die("Query fail: " . mysqli_error());
    }

    public function UpdateDog(){
    }
}
?>

我的表格:

<form action="index.php" method="post">
    Dog Name:<br />
    <input name="txtName" type="text" /><br />
    <br />
    Size:<br />
    <input name="txtSize" type="text" /><br />
    <br />
    Color:<br />
    <input name="txtColor" type="text" /><br />
    <br />
    type Name:<br />
    <input name="txttype" type="text" /><br />
    <br />
    type Description:<br />
    <input name="txtDescription" style="width: 419px; height: 125px" type="text" /><br />
    <br />
    <input name="btnInsert" type="submit" value="Insert" />
</form>

狗名:


大小:


颜色:


类型名称:


类型说明:


如何为
$Dog
实例调用
InsertDog()
方法?

只需使用:

...
$Dog = new Dog($_POST['txtName'], $_POST['txtSize'], $_POST['txtColor'], $_POST['txttype'], $_POST['txtDescription']);
$Dog->InsertDog();

:)

您可以将所有代码放在一个文件(index.php)中,然后使用:

$Dog = new Dog($_POST['txtName'], $_POST['txtSize'], $_POST['txtColor'], $_POST['txttype'], $_POST['txtDescription']);
$Dog->InsertDog();

或者第二种解决方案是将ajax添加到代码中。所以链接jquery:

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

编辑



并加上:

    <script>
    $( document ).ready(function() {
      $( "#buttonId" ).click(function() {
         $.ajax({
            type: "POST",
            url: "index.php",
            data: { txtName: "DogsName", txtSize: "DogSize", txtColor: "color", txttype: "type", txtDescription: "dscr"v}
         })
         .done(function( msg ) {
            alert( "Data Saved: " + msg );
         });
        });
    });
    </script>

$(文档).ready(函数(){
$(“#按钮ID”)。单击(函数(){
$.ajax({
类型:“POST”,
url:“index.php”,
数据:{txtName:“DogsName”,txtSize:“DogSize”,txtColor:“color”,txttype:“type”,txtDescription:“dscr”v}
})
.done(函数(msg){
警报(“保存的数据:“+msg”);
});
});
});
指向index.php的url必须是server/index.php,所以如果使用localhost,它必须是

我没有测试它,但它应该可以工作

<input name="btnInsert" type="submit" value="Insert" id="buttonId" />
    <script>
    $( document ).ready(function() {
      $( "#buttonId" ).click(function() {
         $.ajax({
            type: "POST",
            url: "index.php",
            data: { txtName: "DogsName", txtSize: "DogSize", txtColor: "color", txttype: "type", txtDescription: "dscr"v}
         })
         .done(function( msg ) {
            alert( "Data Saved: " + msg );
         });
        });
    });
    </script>