我一直在尝试寻找将变量从客户端传递到服务器的方法 让我难以接受的是:
&
和=
因此,如果我将变量作为多个/一个GET变量/ s传递,则用户可以传递=
和{{1} }这将影响&
变量我正在寻找将变量(最好是数组)传递给服务器端(如PHP)的方法(解决方案)
感谢您的时间和帮助:)
答案 0 :(得分:0)
要将数组传递给服务器,您可以执行以下操作(请注意名称中的[]
,这表示数组):
<input type="checkbox" name="myCheckBox[]" value="One" />
<input type="checkbox" name="myCheckBox[]" value="Two" />
<input type="checkbox" name="myCheckBox[]" value="Three" />
<input type="checkbox" name="myCheckBox[]" value="Four" />
然后在php中你会做这样的事情:
foreach($_POST['myCheckBox'] as $value){
echo "<p>$value</p>";
}
然后您将获得看起来像这样的输出(假设除Two
之外的所有输出都已选中):
One
Three
Four
因此,假设您没有使用javascript传递数据,浏览器应自动对数据进行编码。如果您使用的是javascript,则可以将数据传递给javascript函数escape()
,它将转义/编码要传递给服务器的数据。
同样对于jquery,您可以使用serialize()操作:
$.ajax(
url: "/to/file.php",
data: $("#my_form").serialize(), // <form id="my_form">
success: function(){
// Do some stuff
}
);
这是另一种传递数据的方法:
<input type="text" name="names[0]['name']['first']" />
<input type="text" name="names[0]['name']['last']" />
<input type="radio" name="names[0]['gender']" value="male" />
<input type="radio" name="names[0]['gender']" value="female" />
<input type="text" name="names[1]['name']['first']" />
<input type="text" name="names[1]['name']['first']" />
<input type="radio" name="names[1]['gender']" value="male" />
<input type="radio" name="names[1]['gender']" value="female" />
<input type="text" name="names[2]['name']['first']" />
<input type="text" name="names[2]['name']['first']" />
<input type="radio" name="names[2]['gender']" value="male" />
<input type="radio" name="names[2]['gender']" value="female" />
<input type="text" name="names[3]['name']['first']" />
<input type="text" name="names[3]['name']['first']" />
<input type="radio" name="names[3]['gender']" value="male" />
<input type="radio" name="names[3]['gender']" value="female" />
在php中你可以这样做:
foreach($_POST['names'] as $name){
echo "<p>" . $name["name"]["first"] . " is a " . $name["gender"] . "</p>";
}
答案 1 :(得分:0)
对于你的问题,可能存在多种灵魂,
1。)我建议以JSON加密格式传递变量。当然,您需要生成一个包含您要发送的所有变量的数组,然后使用javascript函数JSON.stringify(yourArray)
对其进行编码。之后,您可以使用AJAX将数据发送到服务器。
如果您想要一个仅限表格(因此没有javascript)解决方案,请考虑对多种输入类型使用HTML 5命名注释,例如: name="yourForm[]"
。
2.。)您指定的字符将自动存储在JSON注释中。无需关心他们。
在服务器上,您只需使用json_decode($yourArray, true);
将字符串转换回数组。注意用于输出数组而不是对象的真实标志。