从javascript到php获取数据,并将其用于从mssql获取数据
嗨,我有下面的代码,它首先将值从js文件传递到php从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
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]