从javascript到php获取数据,并将其用于从mssql获取数据

从javascript到php获取数据,并将其用于从mssql获取数据,javascript,php,jquery,sql-server,ajax,Javascript,Php,Jquery,Sql Server,Ajax,嗨,我有下面的代码,它首先将值从js文件传递到php function calldata(value) { alert(value); jQuery.ajax({ url: "data3.php", type: 'post', data: value, dataType: 'json', success: function() { alert("hi"); } }); var z = "<table&g

嗨,我有下面的代码,它首先将值从js文件传递到php

function calldata(value) {
    alert(value);
jQuery.ajax({
    url: "data3.php",
    type: 'post',
    data: value,

    dataType: 'json',
    success: function()
    {
       alert("hi");
    }
});
    var z = "<table>";

    jQuery.ajax({
        url: "data3.php",
        async: false,
        cache: false,
        dataType: "json",
        success: function(response) {
            alert(response);
            var p = 10;
            var j = 0;
            var m;
            z = z + "<tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>lunch</th><th>5</th><th>6</th><th>7</th><th>8</th></tr>";
            var k = response.length;
            if (k > 10)
                m = k / 10;
            for (var o = 0; o < m; o++) {
                z = z + "<tr>";

                for (j; j < p; j++) {
                    var obj = response[j];
                    var go = obj.subject;
                    z = z + "<td>" + go + "</td>";

                }
                z = z + "</tr>";

                p = p + 10;
            }
            z = z + "</table>";
            document.getElementById("jumbo").innerHTML = z;
        }



    });

您的
变量是
JSON对象
?如果不是,则必须按如下方式发送变量:

jQuery.ajax({
    url: "data3.php",
    type: 'post',
    data: { key_name: value },
    dataType: 'json',
    success: function()
    {
       alert("hi");
    }
});
function calldata(value) {
    alert(value);
    jQuery.ajax({
        url: "data3.php",
        type: 'post',
        //async: false, // why? Don't block your browser! Leave this out.
        data: {value: value}, // key/value, so PHP finds your data as "value"
        cache: false,
        dataType: "json",
        success: function(response) {
            alert(response);
            var p = 10;
            var j = 0;
            var m; 
            var z = "<table>"; // moved here
            z = z + "<tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>lunch</th><th>5</th><th>6</th><th>7</th><th>8</th></tr>";
            // Note: z needs one more column (10 in total!)
            var k = response.length;
            // if (k > 10) // remove this IF, you need a value in ALL cases.
                m = k / 10;
            for (var o = 0; o < m; o++) {
                z = z + "<tr>";
                for (j; j < p; j++) {
                    var obj = response[j];
                    var go = obj.subject;
                    z = z + "<td>" + go + "</td>";
                }
                z = z + "</tr>";
                p = p + 10;
            }
            z = z + "</table>";
            document.getElementById("jumbo").innerHTML = z;
        }
    });
    // Note that any code that follows here will be executed 
    // before the above success handler will be called.
}
在“key\u name”上,您可以编写希望在
php
中使用的名称。然后在
php
代码中,您可以使用
$\u POST[“key\u value”]
访问该值

编辑:

我编写了下一个代码来测试它:

index.php

<body>
    <input type="button" class="send" value="send" />
    <script>

        $(".send").on("click", function() {

            $.ajax({
                url: "test.php",
                type: "post",
                data: "world",
                dataType: "json",
                success: function(response) {
                    console.log(response);
                }
            });

        })

    </script>
</body>
在第一次执行时,发送到服务器的值是一个
字符串
数据:“world”
,结果是:

array (size=1)
  empty
array (size=0)
  empty
在第二次执行时,发送到服务器的值是一个
json对象
数据:{value:“world”}

这就是我从服务器上得到的:

array (size=1)
  'value' => string 'world' (length=5)
array (size=0)
  empty

要从服务器获得响应,不应发出两个Ajax调用。其思想是通过Ajax发出一个请求,并在成功处理程序中获得对该请求的响应

因此,加入两个Ajax调用,如下所示:

jQuery.ajax({
    url: "data3.php",
    type: 'post',
    data: { key_name: value },
    dataType: 'json',
    success: function()
    {
       alert("hi");
    }
});
function calldata(value) {
    alert(value);
    jQuery.ajax({
        url: "data3.php",
        type: 'post',
        //async: false, // why? Don't block your browser! Leave this out.
        data: {value: value}, // key/value, so PHP finds your data as "value"
        cache: false,
        dataType: "json",
        success: function(response) {
            alert(response);
            var p = 10;
            var j = 0;
            var m; 
            var z = "<table>"; // moved here
            z = z + "<tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>lunch</th><th>5</th><th>6</th><th>7</th><th>8</th></tr>";
            // Note: z needs one more column (10 in total!)
            var k = response.length;
            // if (k > 10) // remove this IF, you need a value in ALL cases.
                m = k / 10;
            for (var o = 0; o < m; o++) {
                z = z + "<tr>";
                for (j; j < p; j++) {
                    var obj = response[j];
                    var go = obj.subject;
                    z = z + "<td>" + go + "</td>";
                }
                z = z + "</tr>";
                p = p + 10;
            }
            z = z + "</table>";
            document.getElementById("jumbo").innerHTML = z;
        }
    });
    // Note that any code that follows here will be executed 
    // before the above success handler will be called.
}

不,这不是一个json对象,你能告诉我,在同一个函数中使用两个ajax调用会产生问题吗?我写了一个示例来测试代码,如果我使用
json对象,我会得到一个响应,如果出现错误,你能看一下我的php代码吗?你在调试代码时尝试了什么?是的,我尝试了没有errori使用chrome调试器显示无错误调试包括检查值、控制流。例如,您是否检查了
$\u GET['value']
的值是多少?这是一个逻辑错误。您应该只进行一次ajax调用:PHP处理请求并对该请求发送响应。现在您要调用PHP两次,但第二次调用时没有传递任何信息,因此它不能给出一个好的答案,但这正是您要放弃的答案。加入两个ajax请求在chrome中调试时不工作它没有输入ajax调用这是什么意思“没有输入”?我正在向行中添加断点,并在程序的警报值直接变为z=z+时一步一步地观察程序的运行情况;这一行证明了Ajax请求和响应正在发生。
警报(响应)
显示的是什么?响应[Object0:“42000”1:1022:“[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]靠近“A”的语法不正确。”SQLSTATE:“42000”代码:102message:“[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]靠近“A”的语法不正确。“proto:Object]