0

ユーザーが複数のメンバーの情報を編集し、その情報を取り込み、URL を介して渡してデータベースを編集できるフォームを作成しようとしています。私はこれまでのところこれを持っています:

 echo "<form id='memberEditor' method='post' action='massEditor.php'>"
 $result = mysql_query("SELECT * FROM `user_trials` ORDER BY `grade` ASC, `lastName` ASC");

            while($row = mysql_fetch_array($result)){
                $studentID = $row['studentid'];
                $ID = array();
                array_push($ID, $studentID);                                        
                $firstName = $row['name'];
                $lastName = $row['lastName'];
                $fullName = $firstName." ".$lastName;
                $money = $row['money'];
                $moneyValue = array();
                array_push($moneyValue, $money);
                $waiver = $row['waiver'];
                $waiverValue = array();
                array_push($waiverValue, $waiver);
                echo "<tr>";
                echo "<td>$studentID</td>";
                echo "<td>$fullName </td>";                 
                echo "<td><input type='checkbox' name='money' id='money'".(($money == 'yes')?'checked ':' ')."value='yes' /></td>";
                echo "<td><input type='checkbox' name='waiver' id='waiver'".(($waiver == 'yes')?'"checked"':' ')."value='yes' /></td>";
                echo "</tr>";

            }
            $queryID = http_build_query($studentID);
            $queryMoney = http_build_query($moneyValue);
            $queryWaiver = http_build_query($waiverValue);

ページの上部では、データベースを編集するために配列を取得しようとしています。

 ini_set('display_errors', 'On');
error_reporting(E_ALL);

  $memberNumbers = count($ID);
  for($i = 0; $i < $memberNumbers; $i++) {
      $studentid = $ID[$i];         
      $result = mysql_query("SELECT * FROM `user` WHERE `studentid`='$studentid' LIMIT 1");
      $news = mysql_fetch_array($result);   
      $cash = $moneyValue[$i];
      $permission = $waiverValue[$i];
      mysql_query("UPDATE `user_trials` SET `money`='$cash', `waiver`='$permission' WHERE `studentid`='$studentid' LIMIT 1");
      header("Location: view_members.php"); 
}

http_build_query からのデータを URL に渡してから、上部で取得しようとしましたが、複数の配列を URL に追加し、3 つを分離して 3 つにする方法がわかりません情報を取得する個別の配列。ありがとう!

4

1 に答える 1

0

シリアル化と urlencoding を使用して、フォーム タグの非表示のタグ要素を介して複数の配列を送信し、urldecoding と非シリアル化を使用してデータを表示できます。例:

あなたが試すことができるデータを送信するために:

<?php
    $array1["a"] = "Element 1 Of Array 1";
    $array1["b"] = "Element 2 Of Array 1";
    $array1["c"] = "Element 3 Of Array 1";
    $array1["d"] = "Element 4 Of Array 1";
    $str1 = serialize($array1);  //****** To Serialize The Array ****
    $strenc1 = urlencode($str1); //****** For URL Encoding **********

    $array2[1] = "Element 1 Of Array 2";
    $array2[2] = "Element 2 Of Array 2";
    $array2[3] = "Element 3 Of Array 2";
    $array2[4] = "Element 4 Of Array 2";
    $str2 = serialize($array2);  //****** To Serialize The Array ****
    $strenc2 = urlencode($str2); //****** For URL Encoding **********
?>

<form method="post" action="target.php">
    <!-- Passing Array 1 -->
    <input type="hidden" name="arr1" value="<?php echo $strenc1; ?>" /> 
    <!-- Passing Array 2 -->
    <input type="hidden" name="arr2" value="<?php echo $strenc2; ?>" />
    <input type="submit" />
</form>

そして、次を使用してターゲットページにデータを印刷できます。

<?php
    $a = unserialize(urldecode($_POST['arr1']));
    foreach($a as $x)
        echo $x . "<br />";

    $a = unserialize(urldecode($_POST['arr2']));
    foreach($a as $x)
        echo $x . "<br />";
?>

これで問題が解決することを願っています。:)

于 2013-03-08T03:09:00.257 に答える