我希望您将新信息(以 JSON 格式)异步发送到 PHP 页面。 PHP接收新数据并更新数据库
Posted
技术标签:
【中文标题】我希望您将新信息(以 JSON 格式)异步发送到 PHP 页面。 PHP接收新数据并更新数据库【英文标题】:I would like you to send the new information (as JSON) to the PHP page asynchronously. PHP receives the new data and updates the database 【发布时间】:2020-06-30 22:33:32 【问题描述】:我的代码没有在数据库中异步更新,我应该点击“更新”按钮来更新它,当用户使用“更新”模式时,该功能应该起作用,他可以编辑信息然后通知页面他们完成了编辑..请帮忙???? html:
<form method="POST" action="EditCourse.php?id=<?php echo $courseid ?>" id="form">
<fieldset> <legend> Course Information</legend>
Course Title: <input type="text" name="title" id="title" value="<?php echo $name?>" onblur="validate(this.value)" pattern="[A-Za-z\s]*" ><br>
Course Field: <input type="text" name="field" id="field" value="<?php echo $fied?>" pattern="[A-Za-z\s]*"><br>
Course Description:<textarea name="description" rows="8" pattern="[a-zA-Z]*" oninvalid="setCustomValidity('Please enter character only. ')" cols="80"> <?php echo $des ?></textarea><br>
Course Image:<input type="file" name="Book_cover" id="Book_cover"><br>
<button class="button">UPDATE</button>
<div id="message"></div>
</fieldset>
</form>
Java 脚本:
function validate(title)
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
if (this.readyState == 4 && this.status == 200)
document.getElementById("message").innerHTML = this.responseText;
;
xhttp.open("POST", "EditCourse.php?courseid=17627", true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send("title="+title);
PHP:
$ID3=$_GET['id'];
$title3=$_POST['title'];
$pic = base64_encode(file_get_contents(addslashes($pic)));
$sqlipdate="UPDATE Course SET Name='$title3' WHERE ID='$ID3'";
$result =mysqli_query($connection,$sqlipdate);
$row = mysqli_fetch_assoc($result);
if(mysqli_num_rows($result)>0)
echo "<span>The update is saved</span>";
else
echo "<span>error1</span>";
【问题讨论】:
这对sql注入开放。如果您不希望数据库突然噗!,请使用准备好的语句 【参考方案1】:由于UPDATE
查询不返回结果集,mysqli_num_rows($result)
始终为0。
来自PHP doc on mysqli_query:
返回值
失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询 mysqli_query() 将返回一个 mysqli_result 对象。为了 其他成功的查询 mysqli_query() 将返回 TRUE。
您可能想查看mysqli_affected_rows
返回受最后一个 INSERT、UPDATE、REPLACE 或 DELETE 查询影响的行数。
【讨论】:
我试了一下,但没有任何改变:( 我的问题是我想在没有加载页面的情况下更新表格或点击更新按钮 按钮会做表单动作;在所有条件相同的情况下,它将转到 php,并进行更新,然后离开页面。当用户离开课程标题输入时(应该)调用该函数。您需要使用浏览器开发者工具中的调试器来查看 js 发生了什么。 这种情况下你知道怎么用json吗? 我认为问题是“为什么我的数据库没有得到更新?”基于此语句“我的代码未在数据库中异步更新”。如果不是这样,那我建议你在帖子里澄清一下,我会删除答案。以上是关于我希望您将新信息(以 JSON 格式)异步发送到 PHP 页面。 PHP接收新数据并更新数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 AFNetWorking 2.0 将 JSON 格式的数据发送到 Web? [复制]