如何使用JQuery从表单中看到$ _POST变量?

时间:2014-11-08 15:35:20

标签: php jquery forms

我正在尝试使用JQuery获取从登录表单生成的$ _POST变量。 我的网页有三个部分Header,Navigation和Main。 “Main”包含表单,应根据表单输入的结果进行更改(登录验证)。 我可以在提交thr表单时更改“main”部分,但无法获取表单标签创建的$ _POST变量。

我怀疑我需要使用ajax来执行此操作,但我对ajax完全不熟悉,并且找不到一个好的简单示例。

我将非常感谢您提供有关如何使其正常运行的帮助和建议。

以下是我尝试使用的测试文件。 (TEST_1.php中的数组转储始终为空)

test.php的

<?php
session_start();
echo "<!DOCTYPE html><html lang='en'><head>";
echo "<script language='JavaScript1.1' src='scripts/KSG.js'></script>";
echo "<script type='text/javascript' charset='utf-8'>
function valid_mem(){
  if (document.form_1.member.value.length === 0){
    req('Username.');
    return false;
  }else{
    if (document.form_1.mpass.value.length === 0){
      req('Password');
      return false;
    }return true;
  }}
</script>";
echo "<script src='js/jquery-1.8.0.min.js'></script>";
echo "</head>";
echo "<body style='background-color:#eeeecc'>";
echo "  <div style='background-color:#6495ed; height: 80px;'>";
echo "    <div class='col-md-12 text-center'><b>HEADER</b> div</div>";
echo "  </div>";
echo "  <div id='mainx' style='background-color:#cccccc; height: 600px;'>";
require ('TEST_0.php');
echo "  </div></body></html>";
?>

TEST_0.php

<?php
echo "<script type='text/javascript' charset='utf-8'>
$(document).ready(function(){
  $('#form_1').submit(function(e){
    e.preventDefault();
    var z = valid_mem();
    if(z){
      var x = $('#form_1').attr('action');
      alert('debug_1: '+x);
      console.log(x);
      $('#mainx').load(x);
    }
    });
});
</script>";
echo "<form id='form_1' name='form_1' action='TEST_1.php' method='post'>";
echo "<b>MAIN</b> div<br>A test form using submit<br><br>";
echo "Member: <input type='text' name='member' >&nbsp;&nbsp;&nbsp;";
echo "Password: <input type='text' name='mpass' >";
echo "<button id='but1' type='submit' >OK</button>";
echo "</form>";
?>

TEST_1.php

<?php
echo "    THIS IS A DUMMY PAGE: TEST 1<br><br>";
echo "<pre>";var_dump($_POST);echo "</pre>";
?>

1 个答案:

答案 0 :(得分:0)

首先,你似乎对PHP很新。我建议你阅读php.net上的"getting started"部分(具体来说,你不应该&#34;回复所有内容,它会让你的代码难以阅读 - 只需将它留在标签之外)。
其次,由于PHP变量是服务器端,因此无法通过JS直接访问它们。您有以下选择:

  1. 根据$ _POST的内容更改服务器端的页面。根据经验,你应该尽可能地这样做。
  2. 通过以后可以访问的JQuery data属性,将相关数据嵌入到页面元素的$ _POST中。
  3. 对于AJAX,它通常是一种动态地从服务器端向客户端获取数据的好方法,但在这种情况下,它将是不必要的复杂,因为$ _POST仅对页面可用表格被发送到。