2013-10-28 99 views
0

我有一个html文件,基本上是一个简单的表单:目的是提交一个运行PHP文件('alternative.php')的代码片段的值参见html代码示例:PHP中的表单链接值

<form name="input" action="alternative.php" method="POST"> 

Area: <input type="text" name="area"><br><br> 
<input type="submit"><br> 

</form><br><br> 

这将运行顺利

现在我有一个第二PHP文件(“alternative2.php”)和该文件自动需要链接到在形式输入的数据。 摘录的PHP代码alternative2:

<?php 

require_once 'header.php'; 

/** Create HTTP POST */ 
$accomm = 'ACCOMM'; 
$region = ''; 

foreach ($result->area as $entry) { 
$region = $entry->attributes()->area_name; 
break; 
} 

$page = '10'; 

两个alternative.php和alternative2.php需要的header.php。

摘录的header.php的:

<?php 

/** Create HTTP POST */ 

$country = 'Australia'; 
$area = htmlspecialchars($_POST["area"]); 
$seek = '<parameters> 
<row><param>COUNTRY</param><value>'. $country .'</value></row> 
<row><param>AREA</param><value>'. $area .'</value></row> 
</parameters>'; 

Currently it returns "Notice: Undefined index: area in C:\xampp\htdocs...." when I run it. 

我怎么去呢?

感谢

+0

你有一个表单,具体有'POST'到'alternative2.php'的动作吗?如果是这样,为什么不尝试'var_dump($ _ POST);''alternative2.php''来查看你的数据。从我看到你实际上只提交表单数据到一个文件。该通知当然是因为'$ _POST ['area']'还没有被初始化。 – Crackertastic

+0

@Crackertastic:认为你是对的;但我有困难初始化它..你能建议任何提示..谢谢 – akinboj

+0

我发布了一个答案你的问题。请看下面,希望这可以帮助你或让你朝正确的方向前进。 – Crackertastic

回答

1

错误提示,$_POST["area"]没有定义,如果你不从你的形式达到alternative2,那么这就是为什么你看到这一点;如果您想从其他地方(例如直接)到达替代方案2,或者如果变量的值在多个页面上必须相同,则可能需要考虑使用Sessions

1

检查是否使用它们之前存在于$ _ POST值...

if (isset($_POST["area"])){ 
    //do stuff 
} 
+0

做到了这一点,它不存在。但是,如何在我称之为'alternative2.php'文件时将用户提交的'西班牙'的价值表达为身份? – akinboj

+0

$ _POST变量位于表单已提交到的页面的全局空间中。也就是说,如果你提交给alternative.php它将会得到这些数据,如果你提交给alternative2.php它将会收到它。我不知道这两个页面是如何交互的,但是如果您将数据发布到alternative.php并且希望它可以在单独的脚本/页面上访问,那么您将必须将其放入数据库/将其拉到新页面上或保存数据在$ _SESSION中。或者只是将功能全部移到一个页面。 – hendr1x

1

基本上它跟哪个文件的形式实际上提交到。如果您的表单仅提交alternative.php,那么您没有收到第二页上的POST信息。我认为最简单和合乎逻辑的选择(基于我从代码中看到的内容)是将alternative.phpalternative2.php的功能合并到一个页面中,或者使用会话来存储POST信息,然后这两个页面将可用。如果你使用会话,你会做如下所示的事情。

开始与处理你的表单输入(alternative.php我相信)的文件,并添加

session_start(); 

到该文件的顶部。然后,在任何的代码块你已经让你的表单信息添加以下行:

$_SESSION['area'] = $_POST['area']; 

现在你的信息存储,将可从请求之间。

然后在你的head.php文件中,通过$_SESSION变量访问信息。

<?php 

/** Start Session */ 
session_start(); 

/** Create HTTP POST */ 

$country = 'Australia'; 
$area = htmlspecialchars($_SESSION['area']); //Access your session variable. 


$seek = '<parameters> 
<row><param>COUNTRY</param><value>'. $country .'</value></row> 
<row><param>AREA</param><value>'. $area .'</value></row> 
</parameters>'; 
?>