2016-11-16 1 views
2

Ich habe eine HTML-Seite erstellt und es verwendet PHP, um Daten aus einer Datenbank zu nehmen und in der Tabelle gespeichert zu speichern. Wie kann ich es so bekommen, wenn der Benutzer eine Schaltfläche anklickt, wird es eine bestimmte Aufgabe entsprechend der Zeile in der Tabelle mit PHP erstellen?PHP create table, dann kann der Benutzer auf die Schaltfläche klicken Informationen aus der Tabelle bekommen

Ich möchte Informationen aus einer Datenbank nehmen und neue Zeilen in einer HTML-Tabelle erstellen. In diesen Zeilen befinden sich Daten aus der Datenbank, außerdem gibt es in jeder Zeile eine Schaltfläche. Wenn der Benutzer auf diese Schaltfläche klickt, möchte er eine Funktion aufrufen, die den angegebenen 'Namen' verwendet, der durch die Variable $ nam dargestellt wird.

<?php 
    ob_start(); 
    session_start(); 
    require_once 'dbconnect.php'; 
    if(!isset($_SESSION['user'])) { 
     header("Location: index.php"); 
     exit; 
    } 
    $deny = array("222.222.222", "333.333.333"); 
    if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) { 
     header("location: http://www.google.com/"); 
     exit(); 
    } 
    $res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$_SESSION['user']); 
    $userRow=mysqli_fetch_array($res); 
?> 
<!DOCTYPE html> 
<html> 
    <?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?> 
    <head> 
     <title>ServiceCoin</title> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css" /> 
     <link rel="stylesheet" href="scripts/home/index.css" /> 
    </head> 
    <body> 
     <center> 
     <h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userServices']; ?></span> Services</h3> 
     <p id="error"></p> 
     <button onclick="send_coins()" class="button">Send Coins</button> 
     <button onclick="create_service()" class="button">Create A Service</button> 
     <button onclick="send_coins()" class="button">My Services</button> 
     <h3>View Services</h3> 
     <span><?php 
     $users = 1; 
     $num = 1; 
     echo "<center><table width=1000><th>Buy</th><th>Service Name</th><th>Service Cost</th><th>Service Description</th><th>Service Provider Name</th>"; 
     while($users < 100 && $num < 100){ 
      $res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$users); 
      $userRow=mysqli_fetch_array($res); 
      $id = 0; 
      while($id != 10){ 
       $id = $id + 1; 
       if($userRow['userService'.$id] === 'null'){ 
       }else if(!empty($userRow['userService'.$id])){ 
        echo "<tr><td name=$num ><input type=submit value=buy ></td><td class=services width=250 align=center>".$userRow['userService'.$id]."</td><td class=services width=250 align=center>".$userRow['userServiceCost'.$id]."</td><td class=services class=services width=500 align=center>".$userRow['userServiceDes'.$id]."<td class=services width=500 align=center>".$userRow['userServiceName'.$id]."</tr>"; 
        //echo $id."Error: ".$con->error; 
        $num = $num + 1; 
        $id = $id + 1; 
       } 
      } 
      $users = $users + 1; 
     } 
     echo "All Services Loaded"; 
     echo "</table></center>"; 
     ?></span> 
      <span class="text-danger"><?php echo $msg; ?></span> 
     </center> 
    </body> 
    <script lang="text/javascript" src="scripts/home/index.js"></script>  
</html> 
<?php ob_end_flush(); ?> 
+0

Das ist ziemlich breit, aber im Wesentlichen klingt es wie das, was Sie tun möchten, ist Formulare in den Tabellenzeilen erstellen und senden Schaltflächen in diesen Formen. Das Absenden eines Formulars würde eine PHP-Seite aufrufen und sie mit den Daten aus diesem Formular versorgen, und diese PHP-Seite würde tun, was immer Sie mit diesen Daten machen wollen. – David

+0

Möchten Sie JavaScript verwenden, um die Aufgabe oder einfache Formularübergabe zu initiieren? – RamRaider

+0

Ja, wie Sie gesagt haben, dass es breit ist, werde ich es jetzt aktualisieren versuchen, so viele Informationen wie möglich zu setzen –

Antwort

0

Erstens können Sie nicht PHP-Funktionen auf eine Benutzeraktion aufrufen, ohne Ajax genannt etwas zu verwenden. Dies ist der Fall, wenn der HTML-Code dem Webbrowser des Benutzers zur Verfügung gestellt wird und er auf der Clientseite keine Informationen vom Server anfordert (es sei denn, es handelt sich um neue Seiten), es sei denn, Sie rufen die PHP-Datei mit dem Funktionscode über Javascript auf (mit Ajax).

Erstellen Sie zum Beispiel eine „functions.js“ Datei und fügen Sie den folgenden Code ein:

function FuncName(NameOfRow){ 
       $.post('phpfunctionfile.php', {NameOfRow: NameOfRow}, function(data) { 
        if(data==1){ 
         //Some sort of code, maybe display a modal with some sort of control panel to do something. 
        } 
       } 
} 

Dann in der PHP-Datei Code Ihre Funktion und Echo zurück, was Sie als die Variable „Daten“ werden soll (echo $ Daten;). Natürlich können Sie auf neue Seiten usw. in dieser Datei umleiten (ich habe es noch nie ausprobiert, obwohl es funktionieren sollte).

Jetzt im ursprünglichen Code unter der Annahme, dass Sie jede Funktion in Abhängigkeit von userServiceName 'aufrufen. $ Id Wenn dies ein eindeutiger Schlüssel in Ihrer Tabelle ist, möchten Sie Ihre Javascript-Funktion aufrufen, indem Sie diesen Wert als Parameter verwenden. Ich habe den folgenden Code nicht getestet und bin mir nicht sicher, ob es tatsächlich das ist, was Sie wollen, aber Sie sollten die Idee aus dem folgenden Code bekommen und dann in der Lage sein, es für das, was Sie erstellen, anzupassen.

echo "<tr><td name=$num onClick="FuncName('".$userRow['userServiceName'.$id]."' ><input type=submit value=buy ></td><td class=services width=250 align=center>".$userRow['userService'.$id]."</td><td class=services width=250 align=center>".$userRow['userServiceCost'.$id]."</td><td class=services class=services width=500 align=center>".$userRow['userServiceDes'.$id]."<td class=services width=500 align=center>".$userRow['userServiceName'.$id]."</tr>"; 

Wenn dies keine klare Erklärung ist, sagen Sie es bitte. Ich gebe dir gerne etwas von meinem Code, der besser zeigen wird, wie ich es vorher gemacht habe.

Verwandte Themen