Php 来自Zend frameword的Ajax响应
最近,我一直在尝试使用jquery/php/XMLRPC创建一个在线CRM,但我遇到了一个似乎无法找到解决方案的问题 我目前有一个ajax请求,它向一个php文档发送一个元素id,当它自己打开(作为文档的直接url)时,会从API服务器返回一个响应(布尔值或类似“错误数据”的错误) 然而,我的页面上根本没有显示这一点,我也不确定我发送的数据是否能够通过php文档 这是我的jquery代码:Php 来自Zend frameword的Ajax响应,php,jquery,ajax,zend-framework,Php,Jquery,Ajax,Zend Framework,最近,我一直在尝试使用jquery/php/XMLRPC创建一个在线CRM,但我遇到了一个似乎无法找到解决方案的问题 我目前有一个ajax请求,它向一个php文档发送一个元素id,当它自己打开(作为文档的直接url)时,会从API服务器返回一个响应(布尔值或类似“错误数据”的错误) 然而,我的页面上根本没有显示这一点,我也不确定我发送的数据是否能够通过php文档 这是我的jquery代码: $('#SomeElement').on('click', function(){ var id
$('#SomeElement').on('click', function(){
var id = $('#ELEMENTID').attr('value');
$.ajax ({
type:'POST',
url: 'PHPfile.php',
dataType: 'json',
data: {id:id},
success: function(data) {
if(data.indexOf('YES') === -1){
$('.alert-success').show();
$('.alert-success').html(data);
/*setTimeout(function() {
$('.alert-success').fadeOut('slow');
location.reload();
}, 2000);*/
} else {
$('.alert-danger').show();
$('.alert-danger').html(data);
/*setTimeout(function() {
$('.alert-danger').fadeOut('slow');
location.reload();
}, 2000);*/
}
}
});
});
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
$q = mysqli_query($conn, "SELECT * FROM some db WHERE somekey = '$_POST[id]'");
$main = mysqli_fetch_assoc($q);
if($main['someentry'] !== '0') {
echo 'This is FALSE';
} else {
$r = mysqli_query($conn, "SELECT * FROM side_db WHERE side_id = '$_POST[id]'");
$p = mysqli_query($conn, "SELECT * FROM ext_db WHERE ext_id = '$_POST[id]'");
$m = mysqli_query($conn, "SELECT * FROM img_db WHERE img_id = '$_POST[id]'");
$side = mysqli_fetch_assoc($r);
$ext = mysqli_fetch_assoc($p);
if((int)$ext['gt'] === '0' || (int)$ext['gt'] === '1') {
$g = 'yes';
} else {
$g = 'no';
}
foreach($ext as $key => $value) {
if($key === 'somestring') {
continue;
}else if($value === '0' || $value === '1') {
$ext[$key] = 'no';
} else if($value === '2'){
$ext[$key] = 'yes';
}
}
foreach($main as $k => $v) {
if($v === '0' || $v === '1') {
$main[$k] = 'no';
} else if($v === '2'){
$main[$k] = 'yes';
}
}
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
$appkey = 'appkey';
$someid = id;
$something = 'something';
$else = 'else';
$divarray = Array
(
'HEAL' = Array(
[0] = "WARLOCK",
[1] = "PRIEST",
[2] = "ROGUE",
[3] = "WARRIOR",
[4] = "MAGE"
),
"someENTRY" = 'YES'
);
$oxClient = new \Zend\XmlRpc\Client('http://link-to-server.php');
$somenewrequest = $oxClient->call('class.OfAPI',array($appkey,$someid,$something,$else,$divarray));
$res = $oxClient->getLastResponse();
echo $res;
$client = new \Zend\XmlRpc\Client('http://link-to-server.php');
if($m !== FALSE) {
$j = 1;
while($img = mysqli_fetch_assoc($m)) {
$pather = str_replace('../',"",$img['img_path']);
$url = str_replace('www.', "", $_SERVER['HTTP_HOST']);
$imagedata = file_get_contents('OUR/FILE/PATH/OF/SERVER'.$url.'/'.$pather);
$base64 = base64_encode($imagedata);
$SOMEID = $res;
$image = $base64;
$client->call('CLASS.IMAGESOMETHING',array($appkey,$usr,$psw,$res,$image));
$j++;
}
}
$fin = mysqli_query($conn, "UPDATE our_db SET avalue = '1' WHERE somefield = '$_POST[id]'");
echo 'You succeeded in doing w/e';
}
这是我的PHP代码:
$('#SomeElement').on('click', function(){
var id = $('#ELEMENTID').attr('value');
$.ajax ({
type:'POST',
url: 'PHPfile.php',
dataType: 'json',
data: {id:id},
success: function(data) {
if(data.indexOf('YES') === -1){
$('.alert-success').show();
$('.alert-success').html(data);
/*setTimeout(function() {
$('.alert-success').fadeOut('slow');
location.reload();
}, 2000);*/
} else {
$('.alert-danger').show();
$('.alert-danger').html(data);
/*setTimeout(function() {
$('.alert-danger').fadeOut('slow');
location.reload();
}, 2000);*/
}
}
});
});
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
$q = mysqli_query($conn, "SELECT * FROM some db WHERE somekey = '$_POST[id]'");
$main = mysqli_fetch_assoc($q);
if($main['someentry'] !== '0') {
echo 'This is FALSE';
} else {
$r = mysqli_query($conn, "SELECT * FROM side_db WHERE side_id = '$_POST[id]'");
$p = mysqli_query($conn, "SELECT * FROM ext_db WHERE ext_id = '$_POST[id]'");
$m = mysqli_query($conn, "SELECT * FROM img_db WHERE img_id = '$_POST[id]'");
$side = mysqli_fetch_assoc($r);
$ext = mysqli_fetch_assoc($p);
if((int)$ext['gt'] === '0' || (int)$ext['gt'] === '1') {
$g = 'yes';
} else {
$g = 'no';
}
foreach($ext as $key => $value) {
if($key === 'somestring') {
continue;
}else if($value === '0' || $value === '1') {
$ext[$key] = 'no';
} else if($value === '2'){
$ext[$key] = 'yes';
}
}
foreach($main as $k => $v) {
if($v === '0' || $v === '1') {
$main[$k] = 'no';
} else if($v === '2'){
$main[$k] = 'yes';
}
}
require 'init_autoloader.php';
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
$appkey = 'appkey';
$someid = id;
$something = 'something';
$else = 'else';
$divarray = Array
(
'HEAL' = Array(
[0] = "WARLOCK",
[1] = "PRIEST",
[2] = "ROGUE",
[3] = "WARRIOR",
[4] = "MAGE"
),
"someENTRY" = 'YES'
);
$oxClient = new \Zend\XmlRpc\Client('http://link-to-server.php');
$somenewrequest = $oxClient->call('class.OfAPI',array($appkey,$someid,$something,$else,$divarray));
$res = $oxClient->getLastResponse();
echo $res;
$client = new \Zend\XmlRpc\Client('http://link-to-server.php');
if($m !== FALSE) {
$j = 1;
while($img = mysqli_fetch_assoc($m)) {
$pather = str_replace('../',"",$img['img_path']);
$url = str_replace('www.', "", $_SERVER['HTTP_HOST']);
$imagedata = file_get_contents('OUR/FILE/PATH/OF/SERVER'.$url.'/'.$pather);
$base64 = base64_encode($imagedata);
$SOMEID = $res;
$image = $base64;
$client->call('CLASS.IMAGESOMETHING',array($appkey,$usr,$psw,$res,$image));
$j++;
}
}
$fin = mysqli_query($conn, "UPDATE our_db SET avalue = '1' WHERE somefield = '$_POST[id]'");
echo 'You succeeded in doing w/e';
}
排除由于必须重写一半代码以保护敏感信息而可能发生的所有小错误,我想知道可以更改哪些内容,以便在运行ajax的页面上看到弹出的响应
我在$res上尝试了JSON.encode,但似乎没有解决任何问题。是否有我遗漏的东西,或者我可以做些不同的事情来获得我需要的响应,或者甚至查看ajax变量是否能够进入php文档
无论哪种方式,我都会很高兴知道我做错了什么,这样我就可以提高,而不必在将来遇到问题
提前谢谢
$(ajax)
中,请将id加引号,以确保它被解释为字段名:数据:{'id':id},