1

これは私が達成しようとしていることですが、私のグーグルは役に立ちませんでした:

新しい行をテーブルに動的に追加するボタンがあります。また、すべて JavaScript で同じアクションを使用して、選択コンポーネントをセルに追加します。その選択コンポーネントにSQL選択ステートメントからの値を入力したいと思います。もちろん、JavaScript で DB への接続を定義したくありません。そのため、PHP 関数を呼び出して値を取得し、それを JavaScript 内の変数に格納する方法があるかどうか疑問に思っていました。

PS PHP は JS ではなくサーバー側であることを理解しています。しかし、確かにこれは可能です。

4

5 に答える 5

2

これは、jQuery の ajax と php を使用した簡単な実装です。

html

<select data-source-url="/category/list"></select>

jQueryを使ったJavaScript

$("select[data-source-url]").each(function(){
    var url = $(this).attr("data-source-url");
    var el = $(this);
    $.get(url, function(data){
        for (i=0;i<data.length;i++){
            el.append("<option>" + data[i] + "</option>");
        }
    },"json");
});

カテゴリ/リスト エンドポイント (PHP スクリプト)

$list = array();
$list[0] = "category 1";
$list[1] = "category 2";
$list[2] = "category 3";
$list[3] = "category 4";
$list[4] = "category 5";

echo json_encode($list);

簡単な説明: JavaScript クライアントを介して php スクリプトに要求が行われ、JSON の値の配列 (基本的には JavaScript のデータ構造) が返され、それらの値が選択ボックスに動的に追加されます。

ページの最初のロードでは、選択ボックスは空になることに注意してください。

于 2013-02-11T09:08:02.217 に答える
1

オプション1

phpクライアント側で次のようなものを使用して、すべての可能な値を含む配列をクライアント側に渡します。

var opt_values = [<?php echo $php_values; ?>]; //javascript array

また

var opt_values = <?php echo json_encode($php_values); ?>; //json object

オプション2

別の方法は、ajaxリクエストを行うことです。オブジェクトを返すphp関数を記述してJSONから、jQueryajaxメソッドを使用して結果を操作できます。

PHP関数:

$json = array();
$result = mysqli_query ($connection, $query);
while($row = mysqli_fetch_array ($result))     
{
    $bus = array(
        'id' => $row['id'],
        'text' => $row['name']
    );
    array_push($json, $bus);
}

return = json_encode($json)

Jquery

$('#button-id').click(function(){
//adds a new row to a table dynamically
    $.ajax({
        type: "get",
        dataType: "json",
        url: "/get_values.php",
        success: function (response) {
            var $el = $("#myselect"); //get the select
            $el.empty(); // remove old options
            //Append the new values
            $.each(response, function(key, value) {
              $el.append($("<option></option>")
                 .attr("value", value.id).text(value.text));
            });
        }
    });
});
于 2013-02-11T09:25:29.500 に答える
1

はい、もちろんできます。s php 変数を js 変数に格納するには、次のようにすることができます。それをjs変数に保存する前に、必要な値をphp変数に保存します

var value = '<?php echo $value;?>';
于 2013-02-11T09:00:15.767 に答える
1

Javascript はデータベースに直接接続できません。

AJAXが必要です。この機能の基本的な流れは次のようになります。

  1. データベースに接続して select 要素のオプションを取得する PHP スクリプトを作成します (これを options.php と呼びましょう)。このスクリプトは、データベースからオプションを取得し、JSON配列として出力する必要があります。
  2. JavaScript で、options.php への ajax リクエストを作成します。そのスクリプトから返された JSON データを使用して、各要素をループし、対応するオプション要素を作成して select 要素内の dom に追加します。

jQueryの使用も検討してください。これは ajax を大幅に簡素化し、クロスブラウザー ソリューションを提供します。

于 2013-02-11T09:00:45.827 に答える
0

w3schools は私の友人で、この投稿で彼らが言っていることに従っているので、公開しようと思ったところです。 W3Schools PHP & AJAX 通信

于 2013-02-11T11:16:32.053 に答える