在下面的代码中,输入1,2,3是引导输入字段,文件是'processor.php'本身。
<script>
$('#create1').click(function(e) {
var ip1 = $('#input1').val();
var ip2 = $('#input2').val();
var ip3 = $('#input3').val();
$.ajax({
url : 'processor.php',
type : 'POST',
data : {
obj1 : ip1,
obj2 : ip2,
obj3 : ip3
}
});
});
<script>
稍后,在文件末尾,我有以下PHP代码
<?php
if(isset($_POST['obj1']) {
echo $_POST['obj1'];
echo $_POST['obj2'];
echo $_POST['obj3'];
}
?>
如何,它只显示ip1的内容,并为我提供obj2,obj3的错误,如下所示:注意:未定义的索引'obj2'开启:...
任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题。我是新手
答案 0 :(得分:0)
Try this...
<script>
$('#create1').click(function(e) {
var ip1 = $('#input1').val();
var ip2 = $('#input2').val();
var ip3 = $('#input3').val();
var dataString = "obj1="+ip1+"&obj2="+ip2+"&obj3="+ip3;
$.ajax({
url : 'processor.php',
type : 'POST',
data : dataString
});
});
<script>
答案 1 :(得分:0)
<?php
$obj1 = (isset($_POST['obj1']) ? $_POST['obj1'] : '');
$obj2 = (isset($_POST['obj2']) ? $_POST['obj2'] : '');
$obj3 = (isset($_POST['obj3']) ? $_POST['obj3'] : '');
echo $obj1;
echo $obj2;
echo $obj3;
?>
答案 2 :(得分:0)
您只是在检查是否设置了$_POST['obj1']
。不是其他人,所以如果他们是空的,你可能会收到失败通知。
你得到的错误注意:未定义的索引'obj2'开启:...... 这意味着它试图访问的数组的索引不存在。换句话说,$ _POST ['obj2']没有赋值给它。
在尝试使用它之前,您需要单独检查每个变量。
$object1 = ""; // Set a default value
if(isset($_POST['obj1']))
{
$object1 = $_POST['obj1']; // Assign the $_POST value if one exists
}
// Now repeat for the rest
$object2 = ""; // Set a default value
if(isset($_POST['obj2']))
{
$object2 = $_POST['obj2']; // Assign the $_POST value if one exists
}
$object3 = ""; // Set a default value
if(isset($_POST['obj3']))
{
$object3 = $_POST['obj3']; // Assign the $_POST value if one exists
}
// Now $object1 will either have the default value, or the $_POST value if one exists
echo $object1;
echo $object2;
echo $object3;
注意:为了便于调试,您可以使用var_dump();
查看页面上变量的内容。
var_dump($_POST);
这有助于确认值/数组/对象包含您期望的值。
答案 3 :(得分:0)
<script>
$('#create1').click(function(e) {
var ip1 = $('#input1').val();
var ip2 = $('#input2').val();
var ip3 = $('#input3').val();
$.ajax({
url : 'processor.php',
type : 'POST',
data : {obj1="+ip1+"&obj2="+ip2+"&obj3="+ip3}
});
});
<script>
或者如果这不起作用 将数据作为一个字符串发送,然后在php
中分隔 data : {obj1="+ip1+"%%"+ip2+"%%"+ip3}
&#34; %%&#34;是分隔符
希望这会有所帮助
答案 4 :(得分:0)
$('#create1parentcontainer').on("click","#create1",function(e) {
var ip1 = $('#input1').val();
var ip2 = $('#input2').val();
var ip3 = $('#input3').val();
$.ajax({
url : 'processor.php',
type : 'POST',
data : {
"obj1" : ip1, //passing key set in ""
"obj2" : ip2,
"obj3" : ip3
}
});
});
并在php下面设置代码
<?php
$obj1 = (isset($_POST['obj1']) ? $_POST['obj1'] : '');
$obj2 = (isset($_POST['obj2']) ? $_POST['obj2'] : '');
$obj3 = (isset($_POST['obj3']) ? $_POST['obj3'] : '');
echo $obj1;
echo $obj2;
echo $obj3;
?>
并且还会在控制台中看到您在ajax中发送的确认请求可能是控制台中显示的错误
答案 5 :(得分:0)
<script>
$('#create1').click(function(e) {
var ip1 = $('#input1').val();
var ip2 = $('#input2').val();
var ip3 = $('#input3').val();
$.ajax({
url : 'processor.php',
type : 'GET',
data : {
'obj1' : ip1,
'obj2' : ip2,
'obj3' : ip3
}
});
});
</script>
<?php
if (!empty($_GET['obj1']))
{
echo $_GET['obj1'];
}
...
?>
请注意,如果您告诉我们哪个文件显示通知错误?