【问题标题】:Passing value in a url in php [closed]在php中的url中传递值[关闭]
【发布时间】:2013-03-20 22:22:20
【问题描述】:

我知道,当单击提交按钮时,可以在 url 中传递一个值,例如:
action= assignastemp.php?value1=a,然后使用 $query=$_GET['value1']; 在 assignastemp 文件中检索它,以便 $query 取值 a。

现在,检查以下内容:

我的 assignastemp 文件中有这行代码,以便我可以检索变量 $query: $query=$_POST['searchprofid']; 中的教授 ID

在 assignastemp 的操作字段中,我输入了:action= 'sendmail.php?prof_id=$query',因为 我希望将同一个教授 ID 传递给我的下一个表单 sendmail.php,以便我也可以显示和使用它在 sendmail.php 中。但它没有传递价值。 请告诉我正确的语法

这是我的 search.php 文件(它工作正常并给了我正确的结果,但没有将 prof_id 传递给 assignastemp.php):

<?php
include('connectionfile.php');

    $query=$_POST['searchprofid'];
    $query1 = $_POST['searchprofname']; 
    $query2=$_POST['searchprofdesignation'];
    $query3=$_POST['searchprofexperience'];
    $query4=$_POST['searchprofemail'];
    $query5=$_POST['searchprofcolg'];
    $query6=$_POST['searchprofsubject'];


    echo "<br><p>";

        $raw_results = mysql_query("SELECT * FROM professor  WHERE (`prof_id` LIKE '%".$query."%') AND (`prof_name` LIKE '%".$query1."%')  AND (`designation` LIKE '%".$query2."%')  AND (`experience` LIKE '%".$query3."%')  AND (`prof_email_id` LIKE '%".$query4."%')  AND (`college_name` LIKE '%".$query5."%') AND (`subject_name` LIKE '%".$query6."%') ") OR die(mysql_error());

    $number= mysql_num_rows($raw_results);
    echo "<br>No. of results returned: ";
    echo "$number";

if($number > 0)
{

     echo ( "<form id='assign' action= 'assignastemp.php?prof_id=$query' method='post'> <table border='1' cellpadding='8' cellspacing= '6' bgcolor= 'white' bordercolor='158bee' align='center' >" ) ; 
            while($results = mysql_fetch_array($raw_results))
    {           
                echo ("<tr><td><p>".$results['prof_id']."</td><td>".$results['prof_name']."</td><td>".$results['designation']."</td><td>".$results['experience']."</td><td>".$results['prof_email_id']."</td><td>".$results['college_name']."</td><td>".$results['subject_name']."</td> ");

     echo(" <td><center><input type= 'submit' name='assign' value= 'Assign' /> </td>"); 

    /* echo(" <td><center><input type= 'hidden' name='prof_id' value='prof_id' /> </td>"); */

    echo("</p></tr>");
                }
    echo("</table></form>"); 
}

        else
        { 
            echo "<br> No matches found.";
        }

mysql_close($id_link);


?>

Here's **assignastemp.php**:<?php
include('connectionfile.php');

$prof_id= $_POST['prof_id'];  

 echo("</p> Professor ID: $prof_id"); 
mysql_close($id_link);


?>

【问题讨论】:

  • 在此处粘贴您的代码。
  • 你能发布你的表单html代码吗?生成的表单在哪里——在提交到的同一个文件中?
  • 您需要使用 POST 方法在表单中 POST 数据,才能将其读取为 $_POST。 POST 不能在 URL 中发送(即 GET 方法)。
  • 是的,请发布您的代码,否则我们将不知道问题是什么
  • 好的,我发布了代码。它可能有我不知道的错误,对此深表歉意,并在此先感谢您。只是一个初学者。

标签: php url dynamic syntax action


【解决方案1】:

您需要在 HTML 中有某种方式(表单)来提交数据,使用 POST 方法,以便能够获取使用 $_POST[...] 输入的数据。

【讨论】:

  • 是的,我用过post方法
【解决方案2】:

在你的url末尾附加参数如:?prof_id=$query通过GET发送它们,因此你只能通过$_GET['prof_id']$_REQUEST['prof_id']访问值; POSTGET是有区别的,如this question所示。

【讨论】:

  • pkay,但我想我也需要在那里发帖。我可以在两个不同的变量中获取并发布相同的值并在同一个文件中以不同的方式使用它们吗?
  • @Pals 与您现在拥有的表格(带有method=post 的那个),您将通过GET 发送prof_id 并通过POST 发送表单项。只需让它们的名称都不同,它应该可以工作。
  • 不,我尝试了很多东西,但没有奏效。必须尽快完成。所以我想我会在我的一个文件中再次将 prof_id 作为输入。问题解决了!无论如何谢谢:)
猜你喜欢
  • 1970-01-01
  • 2017-02-02
  • 2021-11-09
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
相关资源
最近更新 更多