试图打印$ _POST不起作用
我正在尝试打印任何文本字段的值。 我正在使用AJAX,jQuery和PHP,但代码不起作用。 它没有在div id='pinta'
里面显示任何内容,它是空的。
JavaScript的:
$('#Enviar0').click(function() { var input1 =$('#primero input').serialize(); $.ajax({ type:"POST", url:"pintaParte.php", data:input1, success: function(data) { $("#pinta").html(data); } }); });
PHP:
$value) { echo "".$key."
"; echo "".$value."
"; echo "
"; } } ?>
由于您没有明确指定post变量的名称,因此它不会存在于服务器端。
您的数据元素应该如下所示:
data: {"input1": input1}
试试这个,使用JSON:
$('#Enviar0').click(function() { var input1 = $('#primero input').serialize(); $.ajax({ type: "POST", url: "pintaParte.php", data: {"input1": input1} success: function(data) { var key; var value; var string = ''; // You have to parse the json array. for(var i = 0; i < data.length ; i++) { key = data[i].key; value = data[i].value; string += ""+key+"
"; string += ""+value+"
"; } $("#pinta").html(string); }); });
pintaParte.php看起来像这样:
$value) { $json[] = array('key' => $key, 'value' => $value); } } echo json_encode($json); flush(); ?>
问题是,要读取命名对象属性,您需要将其设置为JavaScript对象中的键值 – 此时您只是传递一个字符串。
试试这个:
$('#Enviar0').click(function() { var input1 =$('#primero input').serialize(); $.ajax({ type:"POST", url:"pintaParte.php", data: { input1: input1 }, success: function(data) { $("#pinta").html(data); } }); });
您会发现使用基于浏览器的AJAX资源管理器非常有助于调试这些问题。 Chrome和Safari内置了一个,Firefox有Firebug插件。 这些将允许您实时观察操作,包括实际发送的GET / POST参数。
从foreach循环中删除密钥:
$value) { echo "".$key."
"; echo "".$value."
"; echo "
"; } } ?>