2017-11-22 9 views
-1

これは基本的なPHP SQLの質問ですが、私は過去2日間それに苦労しています。SQLを動的に取得してWebページに表示

私はpage1とpage2を持っています。ページ1にはsqlのデータを含む表があり、各行にはボタンがあります。ユーザーがその行に固有のボタンをクリックすると、ページ2に接続します。ページ2は、特定の製品を選択していただきありがとうございます。ユーザーがボタンをクリックしたときに値を2番目のページに渡すにはどうすればよいですか?これは私のコードです。

//page 1 
<form action="page2.php" method="GET"/> 
<input type="hidden" name="Product" value="'.$row['Product'].'"/> 
</form> 
<?php 
session_start(); 
require 'connect.php'; 
$conn=connect(); 
$sql = "SELECT * from Stock;"; 
$handle = $conn->prepare($sql); 
$handle->execute(); 
$conn = null; 
$res = $handle->fetchAll(); 

echo '<table border="5" align="center">'; 
echo "<tr><th>Product</th><th>Price</th></td>"; 
foreach($res as $row){ 
echo "<tr><td>"; 
echo $row['Product']; 
echo "</td><td>"; 
echo $row['Price']; 
echo "</td><td>"; 
echo "<button>Choose me</button>"; 
echo "</td></tr>"; 
} 
echo "</table>"; 
//page 2 
echo "Thank you for choosing " .$_GET["Product"]."!"; 

ありがとうございます!

+0

Page 2 2ページ目のボタンをpage2にリンクさせ、getparamプロダクトでそのローの値を指定してください。 – JimL

+2

私は今日この同じ質問に答えなかったでしょうか? – Barmar

+1

にはメソッドPOSTが必要です。入力中の「名前」は、フォームの一部として渡されます($ _POST ['Name'])。 –

答えて

1

一つの方法は、foreachループの中にフォームを配置することですボタンで必要な値の代わりに、このダミーの値の値を挿入そのような:

foreach($res as $row){ 

    echo "<tr><td>"; 
    echo $row['Product']; 
    echo "</td><td>"; 
    echo $row['Price']; 
    echo "</td><td>"; 
    echo '<form action="page2.php" method="GET"/>'; 
    echo '<input type="hidden" name="Product" value="'.$row['Product'].'"/>'; 
    echo "<button>Choose me</button>"; 
    echo '</form>'; 
    echo "</td></tr>"; 
} 

だけではなく、ボタンやスタイル、それをあなたのforeachループ内のハイパーリンクを使用しているもう一つの方法ボタンとしてあなたがしたい場合:

foreach($res as $row){ 

    echo "<tr><td>"; 
    echo $row['Product']; 
    echo "</td><td>"; 
    echo $row['Price']; 
    echo "</td><td>"; 
    echo "<a href='page2.php?Product=" .$row['Product']. "'>Choose me</a>"; 
    echo "</td></tr>"; 
} 
0

私は

<?php 
session_start(); 
require 'connect.php'; 
$conn=connect(); 
$sql = "SELECT * from Stock;"; 
$handle = $conn->prepare($sql); 
$handle->execute(); 
$conn = null; 
$res = $handle->fetchAll(); 

echo '<table border="5" align="center">'; 
echo "<tr><th>Product</th><th>Price</th></td>"; 
echo '<form action="page2.php" method="POST"/> 
<input type="hidden" name="Product" value="'.$row['Product'].'"/> 
'; 
foreach($res as $row){ 
    echo "<tr><td>"; 
    echo $row['Product']; 
    echo "</td><td>"; 
    echo $row['Price']; 
    echo "</td><td>"; 
    echo "<button value='someValue'>Choose me</button>"; 
    echo "</td></tr>"; 
} 
echo '<form>'; 
echo "</table>"; 
//page 2 
echo "Thank you for choosing " .$_GET["Product"]."!"; 

あなたのコードを編集した=それをやっての「someValueの」

+0

これは、$ row ['Product'] 'が' zstate

+0

彼は彼が主なアイデアを与えたので、彼は自分が望むもの –

1

は、を介して取得する代わりに、ボタンのリンクを使用して、プロダクトIDを送信

$mysql_row = array(
    'ProductID' => 1, 
    'ProductName' => 'PS4', 
    'ProductPrice' => 499.00); 

echo '<a href="show_product.php?Product='.$row['ProductID'].'">Choose me</a>'; 

ページ2 - 、商品コードを取得し、データベース上でそれを見つけると

製品を検索
$ProductID = 0; 
if(isset($_GET["Product"]) && is_numeric($_GET["Product"])) { 
    $ProductID = intval($_GET["Product"]); 
} 

if($ProductID) { 
    // Find product by 
    $row_mysql = find_product($_GET["Product"]); 

    echo "Thank you for choosing " .$row["Product"]."!" 
} 
関連する問題