Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值从javascript传递到包含的php_Javascript_Php_Sql_Database - Fatal编程技术网

将值从javascript传递到包含的php

将值从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

试图将一个变量从javascript传递到php以插入数据库。这必须在不刷新页面等情况下完成。值直接来自js,不在html中。以下是我的代码片段:

<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注入。

    键入太慢。。。卡洛斯说的。