gpt4 book ai didi

php - 将动态 jQuery post 传递给 PHP

转载 作者:行者123 更新时间:2023-11-30 10:45:51 25 4
gpt4 key购买 nike

您好,我需要有关以下代码的帮助。我搜索了很多帖子和其他网站,但都无济于事。

这是我正在构建的站点的精简版本,该站点具有包含大量 div 的管理页面,可使用 CKeditor 进行编辑,因此序列化对我来说不是一个选项(我不认为)。当我对 $.post 索引进行硬编码并为内容使用变量时,我可以将数组传递给 PHP。

一页没问题,但我有很多。因此,当我尝试将数组字符串构建为变量并将其作为第二个参数传递给 $.post 时,它失败了。 Firebug 显示正在传递 json,尽管值是红色的(硬编码版本未被识别为 json!只是 Index 值)。我相信这可能只是一个语法问题,但我碰壁了。谁能告诉我灯。

PHP 处理程序尝试各种读取 POST 的方法。

带有js的动态HTML:

<html>
<head>
<title>jQuery POST Test</title>

<script type="text/javascript" src="jQuery.min.js"></script>
<script type="text/javascript">
function getElementsByClass(searchClass) {
var classElements = new Array();
var node = document;
var tag = 'div';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}

function getDivs(){
var divArry = getElementsByClass('editable')
var postElmnts = '';
for(i=0; i<divArry.length; i++){
pageName = divArry[i].id;
pageContent = document.getElementById(pageName).innerHTML;
//alert(pageName + ': ' + pageContent);//Test if divs are identified properley
postElmnts= postElmnts + pageName + ': ' + pageContent + ', ';
};
postElmnts = postElmnts.slice(0, -2);
postArry = '{' + postElmnts + '}';
$.post("process_jQuery_test.php",postArry, function(data){alert(data + 'Original: ' + postArry);});

}

function grabText(){
var one = document.getElementById( 'block1' ).innerHTML;
var two = document.getElementById( 'block2' ).innerHTML;
var three = document.getElementById( 'block3' ).innerHTML;
$.post("process_jQuery_test.php", { block1: one, block2: two, block3: three}, function(data){alert( data );} );

}

</script>
</head>

<body>
<button onClick="getDivs();">Get Divs dynamically</button>
<button onClick="grabText();">Grab Text to hard coded index</button>


<div id="block1" class="editable"><p>This is Block 1 content</p></div>
<div id="block2" class="editable"><p>This is Block 2 content</p></div>
<div id="block3" class="editable"><p>This is Block 3 content</p></div>
</body>
</html>

这是 PHP 测试处理程序:

<?php
$data = json_decode($_POST, true);
$decode = json_decode($_POST,true);
$decodeNstrip = json_decode(stripslashes($_POST),true);

echo "Post 0: ".$_POST[0]."\n\r";

echo "\n\rPost block1: ".$_POST['block1']."\n\r";

echo "\n\rPost loop\n\r";
foreach($_POST as $key => $value){
echo $key.': ' .$value."\n\r";
}

echo "\n\rPost decode: ";
print_r($decode)."\n\r";

echo "\n\rPost decode and strip: ";
print_r($decodeNstrip)."\n\r";

echo "\n\rPost Array: ";
print_r($_POST)."\n\r";

?>

最佳答案

传递给 .post 的数据只接受 StringObject

String 作为查询字符串,例如year=2000&month=11

Object 键值/配对,例如{"year":2000,"month":11}

关于php - 将动态 jQuery post 传递给 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8378033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com