将值从javascript传递到包含的php
试图将一个变量从javascript传递到php以插入数据库。这必须在不刷新页面等情况下完成。值直接来自js,不在html中。以下是我的代码片段:将值从javascript传递到包含的php,javascript,php,sql,database,Javascript,Php,Sql,Database,试图将一个变量从javascript传递到php以插入数据库。这必须在不刷新页面等情况下完成。值直接来自js,不在html中。以下是我的代码片段: <script> ... // Variables to submit, for now assume they have values var username; var filename; var chart_data; <?php $query = "INS
<script>
...
// Variables to submit, for now assume they have values
var username;
var filename;
var chart_data;
<?php
$query = "INSERT INTO table_name(userName,data,file_name)
VALUES('/*the username */','/*the chart_data*/','/*the filename*/')";
$res = mysql_query($query);
?>
...
</script>
...
//要提交的变量,目前假定它们有值
var用户名;
var文件名;
var图表和数据;
您应该通过http请求发送值,并在PHP中的request
中接收它们。
您可以通过。使用来实现您的目标。Ajax(异步JavaScript+XML)本身不是一种技术,而是一组打上烙印的技术,包括:HTML或XHTML、级联样式表、JavaScript、文档对象模型、XML、XSLT,最重要的是XMLHttpRequest对象。现在不再使用XML,主要的数据模型是(Javascript对象表示法),因为有无数的工具
PS:如果您的例程太基本,那么避免使用jQuery或框架之类的库,这是不必要的。您将加载一堆代码来只执行一个简单的AJAX?普通的。。。我们需要更频繁地使用原始代码,伙计们,jQuery帮助解决交叉浏览器问题并加速一些实现,但重要的是用纯javascript展示解决方案,以在社区中实现简单性
<script>
...
// Variables to submit, for now assume they have values
var username;
var filename;
var chart_data;
<script type="text/javascript">
function loadXMLDoc() {
var data = {
username: username, //or the values itself
filename: filename,
chart_data: chart_data
};
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
if (xmlhttp.status == 200) {
alert('ok');
}
else if (xmlhttp.status == 400) {
alert('There was an error 400');
}
else {
alert('something else other than 200 was returned');
}
}
};
xmlhttp.open("POST", "yourpage.php", true);
xmlhttp.send(data);
}
//call wherever you want, with the needed variables loaded
loadXMLDoc();
// or the simplest ajax ever without function formed
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST", 'yourfile.php');
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE) {
if(xmlhttp.status == 200){
console.log('Response: ' + xmlhttp.responseText );
}else{
console.log('Error: ' + xmlhttp.statusText )
}
}
}
xmlhttp.send(data);
</script>
<?php
if (isset($_POST)){
$data = json_decode($_POST['data']);
$query = "INSERT INTO table_name(userName,data,file_name)
VALUES("$data->username","$data->chart_data","$data->filename")";
$res = mysql_query($query);
}
?>
...
//要提交的变量,目前假定它们有值
var用户名;
var文件名;
var图表和数据;
函数loadXMLDoc(){
风险值数据={
username:username,//或值本身
filename:filename,
图表数据:图表数据
};
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==XMLHttpRequest.DONE){
if(xmlhttp.status==200){
警报(“正常”);
}
else if(xmlhttp.status==400){
警报(“出现错误400”);
}
否则{
警报(“返回了200以外的内容”);
}
}
};
open(“POST”,“yourpage.php”,true);
发送(数据);
}
//在任何需要的地方调用,并加载所需的变量
loadXMLDoc();
//或者是最简单的没有函数的ajax
var xmlhttp=new XMLHttpRequest();
open(“POST”,“yourfile.php”);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==XMLHttpRequest.DONE){
if(xmlhttp.status==200){
log('Response:'+xmlhttp.responseText);
}否则{
console.log('错误:'+xmlhttp.statusText)
}
}
}
发送(数据);
浏览器中有javascript;php是服务器端
您的浏览器无法运行php。因此,需要做的是:
创建一个html表单并让javascript填充值
提交到保存到数据库的PHP页面
重定向到下一页
--或--
使用AJAX提交保存到数据库的php脚本。您可以使用本机javascript实现这一点;但研究JQuery可能更容易。仔细看看,然后试试看。它有很好的文档记录,您应该能够从JQuery文档中找到它
另外,对于您的数据库活动,您需要使用准备好的语句来避免SQL注入。键入太慢。。。卡洛斯说的。