我正在尝试打印任何文本字段的值。我正在使用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:
<?php
if(isset($_POST['input1'])){
foreach ($_POST['input1'] as $key => $value) {
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
}
?>
答案 0 :(得分:1)
由于您没有明确指定post变量的名称,因此它不会存在于服务器端。
您的数据元素应该如下所示:
data: {"input1": input1}
答案 1 :(得分:1)
尝试使用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 += "<p>"+key+"</p>";
string += "<p>"+value+"</p>";
}
$("#pinta").html(string);
});
});
其中pintaParte.php如下所示:
<?php
$input1 = isset($_POST['input1']) ? $_POST['input1'] : array();
if(sizeof($input1) == 0)
{
$json[] = array();
}
else
{
foreach ($input1 as $key => $value)
{
$json[] = array('key' => $key, 'value' => $value);
}
}
echo json_encode($json);
flush();
?>
答案 2 :(得分:0)
问题是,要读取命名对象属性,您需要将其设置为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参数。
答案 3 :(得分:0)
从foreach循环中删除密钥:
<?php
if(isset($_POST['input1'])){
foreach ($_POST as $key => $value) {
echo "<p>".$key."</p>";
echo "<p>".$value."</p>";
echo "<hr />";
}
}
?>