php - 使用 OOP PHP 进行 Ajax 请求

标签 php jquery ajax

这是一个简单的应用程序,它根据输入结果显示图像,并在悬停时显示其职业和名称。我收到以下错误: 注意:未定义索引:C:\xampp\htdocs\Ajax\Ajax_image\PHP_AJAX.php中的src和注意:未定义索引:C:\xampp\htdocs\Ajax\Ajax_image\PHP_AJAX.php中的名称

我对 Ajax 还很陌生,因此非常感谢您的帮助。

$(document).ready(function() {
    $('#view').click(function() {
        var namevalue = $('#name').val();
        $.post("PHP_AJAX.php", {
            name: namevalue
        }, function(data) {
            $('#bar').html(data);
            $("img").hover(function(e) {
                var s1 = "<img src=";
                var s2 = " width='110px' height='120px' />";
                var srcval = s1.concat($(this).attr('src'), s2);
                $.post("PHP_AJAX.php", {
                    src: srcval
                }, function(data1) {
                    $('#info').css({
                        top: e.clientY,
                        left: e.clientX,
                        backgroundColor: 'yellow'
                    }).fadeIn().html(data1);
                });
            }, function() {
                $('#info').fadeOut();
            });
        });
    });
});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
    <script src="PHP_AJAX.js"></script>
    <style>
        #info {color:black; border:5px blue solid; width:150px; height:100px;display:none;position:absolute;}
    </style>
</head>
<body>
    <p id='bar'>Please enter name to view image! </p>
    <p id='info'>info</p>
    <form>
    <p>Name : <input type='text' name='name'id ='name'/></p>
    </form>
    <button id='view' name ='view'>View</button>
</body>
</html>

class Person
{
// some properties
    private $name;
    private $occupation;
    private $image;
// constructor
    public function __construct($nameval, $occuval, $imgval)
    {
        $this->name       = $nameval;
        $this->occupation = $occuval;
        $this->image      = "<img src=" . $imgval . " width='110px' height='120px' />";
    }
// get name property
    public function getname()
    {
        return $this->name;
    }
// get occupation property
    public function getoccupation()
    {
        return $this->occupation;
    }
// get image property
    public function getimage()
    {
        return $this->image;
    }
}

$obj1 = new Person("Picasso", "Painter", "pi1.jpg");
$obj2 = new Person("Ronaldo", "Football Player", "ronaldo.jpg");
$obj3 = new Person("Picasso", "Teacher", "pi2.jpg");
$obj4 = new Person("Madonna", "Singer", "madonna.jpg");
// storing objects in an array
$arr   = array($obj1, $obj2, $obj3, $obj4);
$count = 0;
for ($i = 0; $i < 4; $i++) {
// if name already exist
    if ($arr[$i]->getname() == $_POST['name']) {
        echo "<p>Image of " . $arr[$i]->getname() . "</p>";
        echo "<p>" . $arr[$i]->getimage() . "</p>";
        $count++;
    }
    if ($arr[$i]->getimage() == $_POST['src']) {
        echo "<p>Name: " . $arr[$i]->getname() . "</p>";
        echo "<p> Occupation:" . $arr[$i]->getoccupation() . "</p>";
        $count++;
    }
}
// if name doesn't exist
if ($count == 0) {
    echo "<h3> NOT FOUND! </h3>";
}

最佳答案

你应该检查isset()比较之前$arr[$i]->getname() == $_POST['name']

所以:

if (isset($_POST['name']) && $arr[$i]->getname() == $_POST['name']) {
    ...
}

if (isset($_POST['src']) && $arr[$i]->getimage() == $_POST['src']) {
    ...
}

关于php - 使用 OOP PHP 进行 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53135802/

相关文章:

php - Symfony 自定义表单约束将错误写入父表单

javascript - javascript/jquery 中的 Onload 不起作用

javascript - iCheck 库 : value of selected radio button

javascript - 将多维 Javascript 数组保存到服务器端 CSV

javascript - 获取 data-id 属性返回未定义

php - 将 PHP 与 Octave 或 Matlab 链接起来

php - 删除我的数据库中 4 列的重复项

javascript - 在哪里使用文档准备功能?

php - CakePHP:在 View 和元素中嵌入 CTP 文件名和路径

php - knpMenuBundle问题