gpt4 book ai didi

javascript - 使用 PHP 更新数据库后,无 jquery ajax 更新 View

转载 作者:行者123 更新时间:2023-12-03 12:32:19 26 4
gpt4 key购买 nike

我通过使用 PHP 和 MySQL 构建网站来学习 MVC 和 Ajax。我创建了一个新的 Controller 方法来处理 ajax,现在能够从我的 Ajax HTTPRequest 成功更新数据库。当我收到响应时,我可以通过用像“Hello”这样的 JavaScript 字符串替换该部门的当前内容来更新该部门,但我不知道如何用更新的数据库数据替换内容。如何正确更新分区?现在我想在没有 JQuery 的情况下完成它,并且不使用 PHP 框架。部门中的数据是成员去过的地方的列表。在 Ajax 之前,列表在页面加载时发送到“ View ”:

//this is controller->index()
public function index() {
//the properties will be pulled up from the db as neccessary so we need to set them first
$this->member->setMembername();
$this->member->setMemberProfile();
$this->member->setMyPlacesList();
$this->member->setMemberData(); //puts the above data into one array for convenience
$this->view->setData($this->member->getmemberData());
$this->view->render('welcomepage/index'); //builds the view with the data
}

现在,在我的 ajax 调用中,我的 Controller 告诉成员模型更新成员去过的地点列表:

public function AjaxAddVisit() {
$details['sitename'] = $_POST["sitename"];
$details['datetime'] = date("Y-m-d H:i:s");
$details['comments'] = $_POST['comments'];
$this->member->addMemberVisit($details); This successfully adds the place to the database.
//I suppose I should now do something like ?
//$this->member->setMyPlacesList();
//$this->member->setMemberData();
//$this->view->setData($this->member->getmemberData());//this would update the views data
}

我现在想从 Ajax 代码修改 View 中的列表,但不知道如何操作,我是否可以执行如下操作,将 php 代码嵌入到像这样的 javascript 字符串中?:

function AddVisitResponse() {
if (myReq.readyState == 4) {
if(myReq.status == 200) {
var phpString = "<?php echo $this->data['myPlacesList'][0][1] ?>";
document.getElementById('myPlacesList').innerHTML = phpString;
//this would just print out one element of the list, but just for example
} else {
alert("got no response from the server");
}
}
}

上面的输出类似于: myPlacesList'][0][1] ?> 所以我认为一定有问题。看来我根本无法用 php 代码发回字符串,即使当我回显“hello”时它也不起作用。如何正确更新分区?我应该使用 XML 格式化 php Controller 方法中的字符串吗?非常感谢,这是我的第一个问题,任何帮助将不胜感激!!!

最佳答案

如果没有看到完整的 ajax 代码,很难判断(myReq 变量的范围是什么?),但是从服务器发送回 ajax 脚本的任何内容都应该可以通过 myReq.responseText.

因此您需要将函数修改为:

function AddVisitResponse() {
if (myReq.readyState == 4) {
if(myReq.status == 200) {
document.getElementById('myPlacesList').innerHTML = myReq.responseText;
} else {
alert("got no response from the server");
}
}
}

请注意,您在页面加载时包含在 javascript 中的任何 php 都已在您运行 javascript 函数时进行了处理。

关于javascript - 使用 PHP 更新数据库后,无 jquery ajax 更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23878348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com