目标:我想要的是从数据库中获取数据并刷新main.php(通过draw_polygon更明显)每次在数据库中添加内容时(在$ .ajax之后提交给submit_to_db.php).
所以基本上我有一个main.php将ajax调用另一个php来接收一个将被保存到数据库的数组,并且json调用另一个php来返回一个数组将被main.php使用.
$(document).ready(function() {
get_from_db();
$('#button_cancel').click(function(){
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: {list_item: selected_from_list},
success: function(result){
...
get_from_db();
}
});
});
function get_from_db(){
$.getJSON('get_from_db.php', function(data) {
...
draw_polygon(data);
});
}
});
Run Code Online (Sandbox Code Playgroud)
在我的例子中,我所做的是一个get_from_db函数调用,getJSON实际从数据库中获取数据,并使用数据draw_polygon.但是应该怎么做呢?我是一个完整的新手,这是我第一次尝试getJSON和ajax说实话.所以我的问题:异步如何实际工作?是否有其他的办法解决这个,而不必调用函数get_from_db与getJSON(这是不同步的,是它那为什么它时,它不是一个函数内没有更新页面?)所有的时间-就像$.ajax用async: false(顺便说一句,我无法让它工作.我的方法很有效,但我想也许还有其他更好的方法可以做到.我很想学习如何.提前致谢.我希望我有任何意义.
为了使它更清晰,这就是我想要实现的目标:
@start页面,从数据库中获取数据(目前通过getJSON)canvas使用data起初我认为问题是当我从ajax调用返回echo json_encode($ row)时,结果是ñ被更改为NULL.但经过测试,我发现问题在此之前存在.
在示例php文件中:
$test = "Nuñez"
echo $test
Run Code Online (Sandbox Code Playgroud)
结果就是Nu ez
我一直在搜索,但没有一个建议的解决方案有效.喜欢:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
Run Code Online (Sandbox Code Playgroud)
或者<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,或header('content-type: text/html; charset: utf-8');.还有一些我已经忘记的解决方案,相信我,我尝试了很多.
这只是它的开始,我希望这不会是mysql的问题,因为我的数据库是在utf-8,所以是我的$ mysqli charset.但我想我不能对ajax json_encode说同样的话.但是没关系,一次只有一个问题.任何人都可以帮助我.非常感谢!
问题已解决我只需要在Notepad ++中设置"在UTF-8中编码",就像之前在"ANSI编码"中一样.
我似乎无法找到一个几乎确切的问题,所以我不妨问一下.
将变量从Javascript发送到PHP真的是一种标准做法吗?我计划在Javascript中进行几次评估之后将数组发送到PHP - 在这里和那里传递变量......只是再次组合成一个数组,正如我所说,将传递给PHP.我错过了什么吗?我几乎没有看到任何教程这样做,主要是相反的方式 - 即PHP数组到Javascript.让我想一想,由于安全原因,也许没有被建议对PHP执行Javascript.
简单地说,将Javascript数组发送到PHP以后将被保存到数据库是危险的吗?我还没有完全阅读如何做到这一点,只扫描了我能找到的极少数... json stringify,$ _POST,json encode,json decode.如果可以将JS传递给PHP,并且因为它与我的问题有关,那么有人可以指出我提到哪些是最好的安全性?谢谢!