2016-09-08 5 views
1

前のページでユーザーが選択したチェックボックスに基づいてSELECTステートメントを実行しようとしています。各チェックボックスは、値として製品のIDを持ちます。チェックボックス配列の値に基づいてSELECTステートメントを実行します。

print '<td><input type="checkbox" name="checkbox[]" value="'. $row["id_product"] .'"></td>'; 

彼らはチェックボックス1、2、3、4と5を選択した場合、私はIDが1で製品を選択するSELECT文たい - ここに5.は、私がこれまで持っているものです。

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $stmt = $conn->prepare("SELECT reference, price, unit_price_impact FROM ps_product_attribute WHERE id_product = ". implode(',', $_POST['checkbox']) .""); 
    echo $stmt; 
    $stmt->execute(); 
    $product = $stmt->fetchAll(); 

    echo '<div class="table-responsive">'; 
     echo '<table class="table table-striped">'; 
       foreach ($product as $row) { 
        print '<tr>'; 
         print '<td>'. $row['reference'] .'</td>'; 
         print '<td></td>'; 
         print '<td>'. $row['price'] .'</td>'; 
         print '<td></td>'; 
        print '</tr>'; 
       } 
     echo '</table>'; 
    echo '</div>'; 
} 

$ _POST ['checkbox']の値が空白なのはなぜですか?

+0

ありがとうデバッグのために、この例でみてください! –

+0

btw 'id_product =値のリスト'は無効なクエリです。 –

+0

@u_mulder SELECTステートメントを実行する前に、ユーザーがページ上のチェックボックスを選択します。 –

答えて

0

チェックボックスを読み取るためにAjaxを使用していて、jqueryで配列/オブジェクトを分割/作成してから、フォーム送信を使用している場合はelseに送信してください。

<form action="#" method="post"> 
<input type="checkbox" name="checklist[]" value="a"><label>a</label><br/> 
<input type="checkbox" name="checklist[]" value="b"><label>b</label><br/> 
<input type="checkbox" name="checklist[]" value="c"><label>c</label><br/> 
<input type="submit" name="submit" value="Submit"/> 
</form> 
<?php 
if(isset($_POST['submit'])){//to run PHP script on submit 
if(!empty($_POST['checklist'])){ 
// Loop to store and display values of individual checked checkbox. 
foreach($_POST['checklist'] as $selected){ 
echo $selected."</br>"; 
} 
} 
} 
?> 

コードに)(空/)ISSETを(使用して以下のようなコードをデバッグしてみてくださいあなたはどのチェックボックスを選択しなかったので

関連する問題