2016-05-31 2 views
0

ボタンをクリックするたびにhtml要素をページに挿入するjsスクリプトがあります。これらの入力(Select)の1つでは、データベースから取り出されたオプションのリストを表示したい。私はこれに対して正しいコードを持っていますが、私はJSにPHPを置くことができないので、それらをどのように組み合わせるか分かりません。クローンjqueryのデータベース要素のリスト<tr>

マイコード:

var rowCount = 0; 
 
function add_product() 
 
{ 
 
    var $table = $('table'); 
 

 
    var generateRow = function(indx){ 
 

 
     $table.append('<tr>\n\ 
 
         <td></td>\ 
 
         <td>\ 
 
          <b>Aantal: </b><input style="width: 60px;" id="aantal" name="aantal_'+indx+'" type="number" min="0" required>\ 
 
         </td>\ 
 
         <td>\ 
 
          <b>Product: </b><select name="products_'+indx+'" type="text" required>\n\ 
 
             </select>\ 
 
         </td>\ 
 
        </tr>'); 
 

 
    } 
 
    generateRow(++rowCount); 
 
}

<?php 
 

 
$productQuery = mysql_query("SELECT * FROM voorraad") 
 

 
           while ($productInfo = mysql_fetch_array($productQuery)) 
 
           { 
 
            $productID = $productInfo[0]; 
 
            $product = $productInfo[1]; 
 
            echo "<option value='$productID'>$product</option>"; 
 
           } 
 
          ?>

+0

各製品は、オプションの同じセットを持っているのでしょうか、各製品には、製品に応じて、オプションの別のリストを持っているのですか? – beingalex

+0

すべてのクローンに同じオプションがあるかどうかを意味しますか?はい、そうです。それは製品のリストであり、それらはすべて同じ製品です。 @beingalex –

答えて

0

これはあなたが達成しようとしていますが、それはこのように達成することができ、その後開始されている方法を使用しているものを行うための最善の方法ではありません。

まず、オプション文字列をPHP変数 に入れて、そのオプション文字列をjavascript変数に入れる必要があります。

これは、PHPとJavascriptがすべて同じドキュメントにあり、PHPコードがドキュメント内のJavaScriptであることを前提としています。

<?php 

$options = ''; 
$productQuery = mysql_query("SELECT * FROM voorraad") 

           while ($productInfo = mysql_fetch_array($productQuery)) 
           { 
            $productID = $productInfo[0]; 
            $product = $productInfo[1]; 
            $options .= "<option value='$productID'>$product</option>"; 
           } 
          ?> 

var options = "<?php echo $options; ?>"; 
var rowCount = 0; 
function add_product() 
{ 
    var $table = $('table'); 

    var generateRow = function(indx){ 

     $table.append('<tr>\n\ 
         <td></td>\ 
         <td>\ 
          <b>Aantal: </b><input style="width: 60px;" id="aantal" name="aantal_'+indx+'" type="number" min="0" required>\ 
         </td>\ 
         <td>\ 
          <b>Product: </b><select name="products_'+indx+'" type="text" required>\n\ 
          ' + options + ' </select>\ 
         </td>\ 
        </tr>'); 

    } 
    generateRow(++rowCount); 
} 
+0

このコードを適用しましたが、リストにはまだ内容が表示されません@beingalex –

+0

javascript変数オプションは、@ beingalexに警告すると0を返します –

+0

リストに何も表示しなかったので$ options + =とput $ options = 。これで、データベースの最後の要素のみが表示されます。このためのオプションがありますか? –

0

あなたはこのようにそれを行うことができます。

jQuery.ajax({ 
    type: "POST", 
    url: 'your_functions_address.php', 
    dataType: 'json', 
    data: {functionname: 'add', arguments: [1, 2]}, 

    success: function (obj, textstatus) { 
        if(!('error' in obj)) { 
         yourVariable = obj.result; 
        } 
        else { 
         console.log(obj.error); 
        } 
      } 
}); 

How can I call PHP functions by JavaScript?

+0

私はその言語を一度も使用しておらず、それを理解するのに苦労しています。別の方法はありませんか? –

関連する問題