【发布时间】:2018-08-29 19:11:58
【问题描述】:
现在大约几天,我正试图从 php 页面(数组)获取数据并将数组的数据存储在 jquery 数组中。问题是当我像这样将数据发送到 php 页面时:
$.ajax({
type: "POST",
url: 'test2.php?pro=<?php echo $project_name ?>',
data: {verifie : JSON.stringify(PassArray)},
cache:false,
success:function(html) {
console.log(html);
$.each( JSON.parse(html), function( key, value ) {
var value2 = value
PassArray.push(value2);
});
console.log(PassArray);
},
error:function(err){
console.log(err);
}
});
我正在接收代码向我发送相同数组的数据,因为我希望 php 页面向我发送包含其他 id 的其他文章(与我在 jquery 中发送的数组的 id 不同):
<?php
$verifie2 = array();
$final = array();
function keyword_sys() {
mb_internal_encoding('UTF-8');
global $verifie2,$final;
$string = $_GET["pro"];
$verifie = json_decode($_POST["verifie"]);
$project = array();
$stopwords = array();
$count = 0;
$string = preg_replace('/[\pP]/u', '', trim(preg_replace('/\s\s+/iu', '', mb_strtolower($string))));
$matchWords = array_filter(explode(' ',$string) , function ($item) use ($stopwords) { return !($item == '' || in_array($item, $stopwords) || mb_strlen($item) <= 2 || is_numeric($item));});
foreach ($matchWords as &$value) {
include("connect.php");
if($verifie == null || $verifie = ""){
$sql = "SELECT * FROM keyword WHERE keyword = '$value' LIMIT 5";
}else{
$sql = "SELECT * FROM keyword WHERE keyword = '$value' AND project_id NOT IN ( '" . implode( "', '" , (array)$verifie ) . "' ) LIMIT 5";
}
$result = $conn->query($sql);
foreach ($conn->query($sql) as $row) {
$project_id = $row["project_id"];
$keyword = $row["keyword"];
if (!in_array($project_id, $verifie2)) {
array_push($verifie2, $project_id);
$compaire = array();
$sql2 = "SELECT * FROM keyword WHERE project_id = '$project_id'";
$result2 = $conn->query($sql2);
foreach ($conn->query($sql2) as $row2) {
$key = $row2["keyword"];
array_push($compaire, $key);
}
$nb_array = count($compaire);
$nb_array2 = count($project);
$project2[] = $project_id;
$project1[] = count(array_diff($compaire,$matchWords));
reset($compaire);
}
}
foreach ($conn->query($sql) as $row) {
$project_id = $row["project_id"];
if (!in_array($project_id, $project)) {
array_push($project, $project_id);
$count = $count + 1;
}
}
}
$n = count($project2);
for ($x = 0; $x < $n; $x++) {
$val = array_keys($project1, min($project1))[0];
array_push($final, $project2[$val]);
unset($project1[$val]);
unset($project2[$val]);
}
print json_encode($final, JSON_PRETTY_PRINT);
}
keyword_sys();
?>
感谢您的阅读和帮助,我希望它很清楚。
【问题讨论】:
-
您发布的代码的确切问题是什么?如果只是将返回的 json 转换为所需的格式,则应仅发布该代码和从 php 脚本返回的 json。
-
感谢您的回答,问题是我不知道如何从成功中保存数组:函数(html{..} in PassArray 并将其正确发送到 php 页面。
标签: php jquery arrays json ajax