为什么我不能将这个变量从Javascript传递到PHP?
这里怎么了?我正在尝试使用JS函数转换字符串:为什么我不能将这个变量从Javascript传递到PHP?,javascript,php,variables,Javascript,Php,Variables,这里怎么了?我正在尝试使用JS函数转换字符串: ?> //JS <script type="text/javascript"> var strIn = <?php echo json_encode($HTTP_RAW_POST_DATA); ?>; var strKey = key Decrypt3 = function (strIn, strKey) { var strOut = new String(); var lenIn = strIn.len
?>
//JS
<script type="text/javascript">
var strIn = <?php echo json_encode($HTTP_RAW_POST_DATA); ?>;
var strKey = key
Decrypt3 = function (strIn, strKey) {
var strOut = new String();
var lenIn = strIn.length;
var lenKey = strKey.length;
var i = 0;
var numIn;
var numKey;
while (i < lenIn) {
numIn = parseInt(strIn.substr(i, 2), 32);
numKey = strKey.charCodeAt(i / 2 % lenKey);
strOut += String.fromCharCode(numIn - numKey);
i += 2;
}
return strOut;
$.post('shop_list.php', {variable: strOut});
};
</script>
//JS
<?php
$strOut = $_POST['strOut'];
?>
//JS
var-strIn=;
var strKey=key
Decrypt3=函数(strIn,strKey){
var strOut=新字符串();
瓦尔·列宁=直线长度;
var lenKey=strKey.length;
var i=0;
var numIn;
var numKey;
而(我<列宁){
numIn=parseInt(strIn.substr(i,2),32);
numKey=strKey.charCodeAt(i/2%lenKey);
strOut+=String.fromCharCode(numIn-numKey);
i+=2;
}
回程行程;
$.post('shop_list.php',{variable:strOut});
};
//JS
您正在发送一个对象,并且键是variable
$.post('shop_list.php', {variable: strOut});
这意味着它可以通过
$strOut = $_POST['variable'];
strOut
只是引用该值的javascript变量
您必须删除return语句,否则$.post函数永远不会运行您的代码有很多问题。无特定顺序:
从不调用Decrypt3
函数
$.post
永远不会被调用,因为它位于return语句之后。您可能希望return语句位于POST请求之后,如下所示:
$.post('shop_list.php', {variable: strOut});
return strOut;
json\u encode()
变量将导致语法错误。你必须加上引号:
var strIn = <?php echo "'", str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)), "'"; ?>;
这两行在shop_list.php的底部吗?其他行是另一个页面的一部分吗?它们位于同一个php文件中。哪个是shop-list.phpIn您的代码什么是键
?POST请求也发生在return语句之后。这给了我注意:未定义的索引:shop-list.php中的变量在第31行
然后尝试调试,添加打印($\u POST)和一个成功处理程序,以查看返回的内容
var strIn = <?php echo "'", str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)), "'"; ?>;
<script type="text/javascript">
function Decrypt3(input, key) {
var out = "";
for (var i = 0; i < input.length; i += 2) {
var numIn = parseInt(input.substr(i, 2), 32);
var numKey = key.charCodeAt(i / 2 % key.length);
out += String.fromCharCode(numIn - numKey);
}
$.post('shop_list.php', {strOut: out});
return out;
};
var strIn = <?php echo str_replace("'", "\\'", json_encode($HTTP_RAW_POST_DATA)); ?>;
var strKey = "KEY OF SOME KIND...";
Decrypt3(strIn, strKey);
</script>
<?php
$strOut = $_POST['strOut'];
?>