我有一个javascript代码,可以将数据发送到我的php文件...
这样的样本值是:
array(
array('story_name'=>'mystory', 'priority'=>1),
array('story_name'=>'mystory2', 'priority'=>2)
)
所以我的问题是如何将此字符串转换为相同格式的php数组,以便我可以将其附加到我的查询中?
答案 0 :(得分:3)
使用JSON:
echo json_encode($yourarray);
echo json_decode($_GET['fromjs']);
答案 1 :(得分:1)
您确定要将本机php代码发送到服务器吗?这确实会导致一些 主要 安全漏洞。以更友好的PHP格式发送数据要好得多。
mystory,1|mystory,2
然后您可以使用explode()
方法将数据转换为数组
其他人建议使用JSON。您可以在JSON
中按如下格式设置上述数据[ //Used to indicate sequential array i.e. $myarray[0]
{ //Used to indicate associative array i.e. $myarray["story_name"]
story_name: "mystory",
priority: 1
},
{
story_name: "mystory2",
priority: 2
}
]
答案 2 :(得分:1)
可以使用以下方法将javascript数组值传递给php文件
第1步:
让我们考虑一下js数组为
<script language=javascript>
scriptAr = new Array();
scriptAr[0] = "one";
scriptAr[1] = "two";
scriptAr[2] = "three";
<script>
第2步:
Now we will create a hidden form field as follows
<form action="phpArrayTest.php" method=post name=test onSubmit=setValue()>
<input name=arv type=hidden>
<input type=submit>
</form>
我们所做的是,当调用submit时,我们首先使用onSubmit方法做一些工作(“onSubmit = setValue()”)。 onSubmit方法将调用我们定义的setValue()函数。之后将执行操作并调用stringTokens.php。
第3步: 这里我们定义setValue方法。该方法将已经定义的数组转换为字符串,然后将其设置为隐藏字段。
<script language=javascript>
function setValue()
{
var arv = scriptAr.toString();
// This line converts js array to String document.test.arv.value=arv;
// This sets the string to the hidden form field. }
</script>
第4步: 在php文件中,字符串将被拆分为数组。
答案 3 :(得分:1)
您可以使用eval:
$arr = eval($data);
请注意,这可能会导致安全问题,因为eval()会从字符串中执行任何PHP代码。你应该使用它与cauntion。
您还需要在代码中添加一个返回值。
有关eval()的更多信息,请访问:http://php.net/manual/en/function.eval.php
更好的方法是将JSON发送到您的php脚本,如下所示:
在javascript中:
var json = array2json(YOUR_JS_ARRAY);
将此文件发送到您的PHP脚本,并将其解码为PHP数组,如下所示:
json_decode($_POST['data']);
有关JSON解码的更多信息,请参阅http://php.net/manual/en/function.json-decode.php。 有关JavaScript Object Notation(JSON)的更多信息,请参阅http://en.wikipedia.org/wiki/JSON。