0

我正在使用传递给另一个 php 文件的 URL 值。但是,每次我尝试将name变量的值与下面的普通变量结合使用时,PHP都不会读取它!

global $counterforlist;
 $counterforlist= 0;
echo "<form method=\"POST\"  action=\" ".htmlspecialchars($_SERVER['PHP_SELF'])."\" > ";
echo "<table>";
echo "<tr><td>ID:</td><td>Company Name</td><td>Date for Service</td><td>Edit</td><td>Delete</td></tr>";

while ($row = mysql_fetch_array($result)){
$counterforlist = $counterforlist +1;
echo "<td><input type= 'text' name = 'jobrequestnumber$counterforlist' value =".$row['jobrequestnumber']."></td>"   ; 
echo "<td><input type= 'text' name = 'requestingcompany$counterforlist' value =".$row['requestingcompany']."></td>" ;
echo "<td><input type= 'text' name = 'dateforService$counterforlist' value =".$row['dateforService']."></td>"   ;
echo "<td><a href=\"update_request.php?jobrequestnumber{$counterforlist}={$row['jobrequestnumber']}&requestingcompany{$counterforlist}={$row['requestingcompany']}&dateforService{$counterforlist}={$row['dateforService']}&{$counterforlist}={$counterforlist}\">Update</a></td>";
echo "<td><a href='delete.php?jobrequestnumber=".$row['jobrequestnumber']."'>Delete</a></td>"; //too
echo "</tr>";
<?php include('update_request.php');?> 

这是在 update_request 中调用这些值的另一个 php 文件:

<?php 
global $counterforlist;

$jobrequestnumber=$_GET["jobrequestnumber"."$counterforlist"];
$requestingcompany=$_GET["requestingcompany"."$counterforlist"];
$dateforService=$_GET["dateforService"."$counterforlist"]; 

$required_array=array($jobrequestnumber,$requestingcompany,$dateforService);
$errors = array();
$errors = array_merge($errors, check_required_fields($required_array, $_POST));
if (empty($errors)){
// Database submission only proceeds if there were NO errors.
    $query =    "UPDATE jobrequest SET 
                        requestingcompany = '{$requestingcompany}',
                        dateforService = {$dateforService} 
                    WHERE jobrequestnumber ={$jobrequestnumber}";
                    echo $jobrequestnumber;
        $result = mysql_query($query);

错误信息:

注意:未定义索引:第 7 行 C:\xampp\htdocs\xampp\capstone\update_request.php 中的 jobrequestnumber

注意:未定义索引:第 8 行 C:\xampp\htdocs\xampp\capstone\update_request.php 中的 requestingcompany

注意:未定义索引:第 9 行 C:\xampp\htdocs\xampp\capstone\update_request.php 中的 dateforService


如果我要再次声明变量,它将不会从以前的 php 页面读取值。你能帮我弄清楚我错过了什么吗?

4

1 回答 1

0

是的,还有?你的其他 PHP 文件没有$counterforlist定义,所以像

$jobrequestnumber=$_GET["jobrequestnumber"."$counterforlist"];

被视为

$jobrequestnumber=$_GET["jobrequestnumber"];

由于您要发送jobrequestnumber1,jobrequestnumber2等...简单的平原jobrequestnumber将不存在。

global在 PHP 中不会使变量在多个不同的脚本中保持不变。除非您在function()定义中使用该声明,否则无论如何都不会太多。

你可能想要这样的东西:

$jobrequests = preg_grep('/^jobrequestnumber\d+$/', array_keys($_GET)); // get matching key names
foreach($jobrequests as $jobrequest) {
   $key = substr($jobrequest, 12); // extract the digit(s) from the end of the key name
   ...
}
于 2013-05-23T14:33:30.480 回答