2011-01-07 19 views
4

これは可能ですか?私は以下のコードは混乱の全体のヒープを見ているが、私はそれにPHPを埋め込むことによって、それがもっと面倒にしたい。各クリックで私はテーブルに行を追加していますが、私はこれらのうちの1つに動的ドロップダウンを含める必要があります。<td>の結果をmysql dbから取得します。それはこれを言う:<td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td> 私はこれを達成することができますどのように私はPHPの組み込みのドロップダウンを持っているつもりですpのタグの代わりに?jQueryにPHPを組み込む.append()

$('#items').append('<tr class="tableRow"> 
<td><a class="removeItem" href="#"><img src="/admin/images/delete.png"></img></a></td> 
<td class="supp_short_code">' + supp_short_code_db + '</td> 
<td class="om_part_no">' + omPartNo + '</td> 
<td>' + supPartNo + '</td><td>' + cat + '</td> 
<td class="description">' + desc + '</td> 
<td>' + manuf + '</td> 
<td>' + list + '</td> 
<td>' + disc + '</td> 
<td><p class="add_edit">Add/Edit</p><input type="text" class="quantity_input" name="quantity_input" /></td> 
<td class="price_each_nett price">' + priceEach + '</td> 
<td class="cost_of_items"></td> 
<td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td> 
<td class="cost_total_td"></td> 
</tr>'); 

答えて

8

Jqueryはクライアント側であるため、提案するようにPHPを追加することはできません。

JqueryのコールバックによってトリガーされるPHPスクリプトを作成し、PHPスクリプトがいくつかのパラメーターを受け取り、ソリューションを実現するために必要なHTMLを返す必要があります。

これは役に立ちますか?

1

サーバー上でドロップダウンを生成し、次にjQuery $ .ajaxメソッドを使用してドロップダウンを取得します。あるいは、オプション/値のJSON配列を返し、$ .eachのようなものを使用してドロップダウンを構築して配列を反復することもできます。

PHPをjavascriptで使用し、それをサーバーに送信して実行することを検討している場合は、実行しないでください。これは最高の注文のWTFです。あなたはその権利を意味していませんでしたか? (あなたの質問のタイトルを変更することもできますが、そのように表示されるためです)。

編集:皆さん、クライアントサイドPHPは不可能です。これをチェック!あなたは、クライアントのブラウザに送信JSにそれを埋め込み、それを実行するために期待することはできませんので

http://thedailywtf.com/Articles/Client-side_PHP.aspx

+0

ただし、お勧めできませんか? – diagonalbatman

+0

それは日々のことです - あなたはどう思いますか? – calumbrodie

1

PHPは、唯一のサーバー側です。結果を得るには、PHPを使用して最初のページにリストを表示するか、AJAX呼び出しを使用してサービスURIからリストを取得する必要があります。

0

サーバー上で動的にこのコードを生成している場合は、クライアントに送信する前に、HTMLマークアップにmysqlの結果を追加したい、つまり、あなたはこのような何かをするだろう:

<td><?php $VARIABLE_TO_ADD ?></td> 

これは、あなたはDBからデータを抜き出し、そのデータで変数を作成する方法を知っていると仮定します。 PHPはHTML文書内の<?php ?>タグを探し、それらの間にあるものを解析します。

+0

はい私はこれを行うことができます。jQueryのクリックイベントがトリガーされたときに表示されるようにしたいだけでした。 – benhowdle89

+0

jqueryを使用して要素を非表示にし、クリックすると表示させることができますか? – diagonalbatman

3

ステップ1:PHPコードからの結果をretrivingとhtml要素に送信するためのJavaScript関数を次の書き込み:行

// Your code 
//just call another function to get db driven combo. 
get_education_combo(); 

ステップ2を加えます。

function get_education_combo() 
{ 
    var url ="print_education_list"; 
    //alert(url); 
    var contents = AjaxRequest(url); 
    //alert(contents); 
    //return contents; 
    //send the result to html 

    document.getElementById("elementID").innerHTML=contents; 
} 

function AjaxRequest(url) 
{ 
    //alert(url); 
    if(xmlhttp != null){ 
     if(xmlhttp.abort) 
      xmlhttp.abort(); 
     xmlhttp = null; 
    }; 
    if(window.XMLHttpRequest) // good browsers 
     xmlhttp=new XMLHttpRequest(); 
    else if(window.ActiveXObject) // IE 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

    if(xmlhttp == null) 
     return null; 

    xmlhttp.open("GET",url,false); 

    xmlhttp.send(null); 
    // alert(xmlhttp.status); 

    if(xmlhttp.status >= 200 && xmlhttp.status < 300)// 2xx is good enough 
     return xmlhttp.responseText; 
    else 
     return null; 
} 

は、ステップ3:それだPHPコード

print_education_list() 
{ 
    $education="your query"; 
    echo '<select name="edu_name" id="edu_name" style="width:70px;">'; 
    foreach($education as $edu) 
    { 
     echo '<option>'; 
     echo $edu->sEducationName; 
     echo '</option>'; 
    } 
    echo '</select>'; 
} 

。最高の運命。私はこの組み合わせをPHPでDesk Topアプリケーションの開発中に準備しました。

関連する問題