我有一个解析数组的ajax
jQuery的
if (conceptName == "payall"){
var payall = confirm ("You are about paying for some items.");
if (payall == true ){
var checkedB = new Array();
$("input.NP:checkbox:checked").each(function(){
checkedB.push($(this).attr("class"));
});
// ajax for sending the selected products array for the payment
$.ajax({
type: 'POST',
url: "ord/payforit.php",
data: {checkedB:checkedB},
dataType: 'json',
cache: false,
success: function(resultpay) {
alert (resultpay);
}
});
} else {
alert ("Ok, Do you still wanna add items?");
}
的PHP
require "dbconnection.php";
$getarr = mysqli_real_escape_string($db,$_POST["checkedB"]);
echo json_encode ($getarr);
如果我使用$ _POST [“ checkedB”]而不进行清理,则数组解析没有问题,但是使用上面的代码,我将拥有
<br />
<b>Warning</b>: mysqli_real_escape_string() expects parameter 2 to be string, array given in <b>e/ru/ord/payforit.php</b> on line <b>21</b><br />
null
我的代码有什么问题,我确定我的数据库连接正常,使用相同目录的图片上传没有错误。
请帮我在这里。
感激。
参考方案
您应该遍历数组并将其应用于值(以及键(如果要处理post和get))
foreach ( $_POST["checkedB"] as $k=>$v ) {
${mysqli_real_escape_string( $db, $k )} = mysql_reali_escape_string( $db, $v );
}
echo $someKeyInArray;
还是重新编译一个数组
$array = array();
foreach ( $_POST["checkedB"] as $k=>$v ) {
$array[mysqli_real_escape_string( $db, $k )] = mysqli_real_escape_string( $db, $v );
}
echo $array['someKeyInArray'];
如果您的数组模型包含多个数组,那么您将需要利用一个函数正确地遍历所有数组,类似这样(未测试)
function mysqli_escape_array( $arr, $db = false ) {
if ( ! $db ) {
return false;
}
$array = array();
foreach ( $arr as $k=>$v ) {
if ( is_array( $v ) ) {
$array[mysqli_real_escape_string( $db, $k )] = mysqli_escape_array( $v, $db );
} else {
$array[mysqli_real_escape_string( $db, $k )] = mysqli_real_escape_string( $db, $v );
}
}
return $arr;
}
$array = mysqli_escape_array( $_POST['checkedB'], $db );
echo json_encode( $array );
PHP问题将implode()与mysql_real_escape_string()组合 - php如何正确编写同时爆炸和mysql_real_escape_string的MySQL查询的代码?这是我拥有的代码,但是失败了:$sql = "INSERT INTO BEER_LOCATIONS (LOCATION_NAME, LOCATION_STREET, LOCATION_CITY, LOCATION_STATE, LOCATION_ZIPCO…
实时显示在其他在线用户上吗? - phpFacebook如何处理其“实时”数据?如果您正在查看自己的活动供稿,并且用户喜欢某件事,则可以立即看到文字更改,表明该用户喜欢它,或者当收到通知时,您会在页面上看到红色的通知符号,而无需刷新。我知道这段代码可以推送数据而无需刷新:$.post('ajax/test.html', function(data) { $('.res…
消息:mysqli::real_connect():php_network_getaddresses:getaddrinfo失败:未知此类主机 - php我是PHP MVC CI的新手,我正在错误以下。 消息:mysqli :: real_connect():php_network_getaddresses:getaddrinfo 失败:未知此类主机。下面是我的信息通过。 主机名:http://localhost:1234/Sample/ 用户名:root 密码://此处密码为空 数据库:codeignito…
PHP-将日期插入日期时间字段 - php我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数
PHP getallheaders替代 - php我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…