对象 HTML 被输出而不是期望值
object HTMLLIElement getting outputted instead of expected value
嘿,我在Javascript-PHP变量传递中遇到了问题这是我的PHP代码:
<li id="' . $todo1 . '" class="items">' . $todo1 . '<button onclick="ajaxdelete(' . $todo1 . ')">Delete</button></li>
这里是 JavaScript 函数
function ajaxdelete(x){
var hr = new XMLHttpRequest();
var url = "ajaxtododelete.php";
var vars = "todo="+x;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("status").innerHTML = return_data;
}
}
hr.send(vars); // Actually execute the request
}
和她的我的 ajax 文件:
<?php
session_start();
include_once "connect_to_mysql.php";
$todo = $_POST['todo'];
print "$todo";
$sql = mysql_query("DELETE FROM todo WHERE todo='$todo'");
?>
因此,它不是输出"$todo 1"的值(这是我想要的),而是输出: 有什么办法可以解决这个问题吗?
首先,你的SQL注入应用程序有一个大漏洞。 其次,您需要引用标识符,以便在函数调用中传递 id 的值,而不是对元素本身的引用。 第三,您可能应该为此使用框架,并以不显眼的方式应用处理程序。
'<li id="' . $todo1 . '" class="items">' . $todo1 . '<button onclick="ajaxdelete(''' . $todo1 . ''')">Delete</button></li>'
更好(使用 jQuery)
'<li id="' . $todo1 . '" class="items">' . $todo1 . '<button>Delete</button></li>'
<script type="text/javascript">
$(function() {
$('.items').on('click', function() {
var $li = $(this).closest('li');
id = $li.attr('id');
$.post( "ajaxtodelete.php", { "todo" : id }, function() {
$li.remove();
});
});
});
</script>
并修复您的PHP以使用参数化查询而不是字符串连接,以防有人决定使用浏览器调试器修改id并将id更改为SQL命令,这将删除整个数据库 - 或检索其内容用于更邪恶的目的。
相关文章:
- 在JavaScript中输出转义字符
- 如何在jQuery中将函数的输出分配给变量
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- Eloquent JavaScript递归示例如何终止为返回1,但仍然输出指数值
- PHP中的数组输出
- 以不同的顺序输出数据
- 使用Rivets.js输出类
- 在Chrome扩展内部输出Google API调用
- 如何为d3.js图表输出组织/嵌套数据
- 将IndexedDB中的数据拉入数组,并通过ReactJS输出
- 一个ajax循环有两个输出错误innerHTML
- 快速排序程序未正确输出
- 函数将输出nan而不是数字,为什么
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 如何在页面一侧的浮动框中显示用户脚本的输出
- 对象 HTML 被输出而不是期望值