尝试使用json和jquery发送和接收表单值时获取null

时间:2010-08-25 15:47:13

标签: php jquery json

以下是 HTML 部分,可能在表单语句中可能出错(不确定):

<div id='data'></div>
  <form action="">
   <input type="text" name="nomeInput" value="" />
</form>

以下是 javascript 部分:

$(document).ready(function(){

$.post("testeBasico_1.php", {nomeInput : $('#nomeInput').val()}, function(resposta) {
  for (var x = 0, tamanhoDados = resposta.dados.length; x < tamanhoDados; x++){
     $('#data').append(resposta.dados[x]+'<br>');
  }
  //issue line
  $('#data').append('<br />'+resposta.venhoDoInput);
  }, "json");
});

这是 php 部分:

$response = (object) array(
    'success' => TRUE,
    'dados'       => array("1", "2", "3"),
    'venhoDoInput' => $_POST['nomeInput']
);
echo json_encode($response);

当我尝试这个时,无论输入字段是否被填充,我都会在'venhoDoInput'上得到null。

我在这里缺少什么? (它应该是非常基本的东西),我只是希望通过了解,我可以更好地理解那些邪恶的代码行。

提前多多感谢,

MEM

注意: 如果我在服务器端脚本上转储($ _ POST ['nomeInput'],我什么都没显示...... 这可能是因为我正在使用js将这些数据显示到浏览器中。 而且我不太确定如何调试服务器端...:s

1 个答案:

答案 0 :(得分:2)

您正在使用ID选择器,但您尝试选择的元素没有设置ID。将属性id =“nomeInput”添加到输入。

编辑: 您的代码将在页面加载时提交表单。为了让它在实际表单提交时提交,您需要将其包装为表单的提交监听器。

HTML:

<div id='data'></div>
<form action="" id="myForm">
    <input type="text" name="nomeInput" value="" />
</form>

jQuery的:

$(document).ready(function(){

    $('#myForm').submit(function() {
        $.post("testeBasico_1.php", {nomeInput : $('#nomeInput').val()}, function(resposta) {
            for (var x = 0, tamanhoDados = resposta.dados.length; x < tamanhoDados; x++) {
                $('#data').append(resposta.dados[x]+'<br>');
            }
            //issue line
            $('#data').append('<br />'+resposta.venhoDoInput);
        }, "json");
        return false;
    }
});