2

タイトル通り。

次のようなjQueryがあります

$("<div class='creditCardDetails' id='usercurrentccbox'>
    <div class='creditCard'>
    <div class='cardChoice'>
    <span>Choose Card Type</span>
    <input name='cctype' type='radio' value='V' class='lft-field' id='visa' />
    <label for='visa'></label>
    <input name='cctype' type='radio' value='M' class='lft-field' id='mastercard' />
    <label for='mastercard'></label><input name='cctype' type='radio' value='A' class='lft-field' id='amex' />
    <label for='amex'></label>
    </div>
    <!--cardChoice-->
    <div class='cardNumber'>
    <input name='ccn' id='ccn' type='text' class='long-field' value='<?php echo MaskCreditCard($loggedInfo[ccn]);?>' maxlength='19' readonly />
    </div>
    <div class='cardCVV'>
    <input name='cvv' id='cvv' type='text' maxlength='5' class='small-field' />
    </div>
    <div class='creditCardName'>
    <input name='ccname' id='ccname' type='text' class='long-field' value='<?php echo $loggedInfo[ccname];?>' readonly/>
    </div
    <div class='cardDate'>
    <input name='exp1' id='exp1' type='text' maxlength='2' class='small-field' value='<?php echo $loggedInfo[ccm];?>' readonly /><input name='exp2' id='exp2' type='text' maxlength='4' class='small-field' value='<?php echo $loggedInfo[ccy];?>' readonly />
    </div>
    </div><!--creditCard-->").insertAfter("#paymentCardChoice");

しかし、ご覧のとおり、PHP 変数があることがわかります。これを PHP ファイルに埋め込んでおけば、これは機能しますが、PHP ファイルをできるだけ短くして、このコードを .js ファイル内に配置したいと思います。もちろん、変数は表示されるだけです。変数自体ではなく、PHP のテキスト。

呼び出そうとしている変数は、config.php ファイルで既に定義されています。

このようなものを使用する必要がありますか?もしそうなら、上記のコードで変数を呼び出す方法に行き詰まっています。

$.post('phpfile.php', qString, function (data) {

}, "json"); 
4

4 に答える 4

3

PHP コードは.jsファイル内では実行されません。.php非常に簡単な回避策は、JavaScript+PHP コードをファイルに入れることです。次に、コンテンツ タイプ ヘッダーを設定します。次に例を示します。

<?php
    #
    # script.js.php
    #
    header("Content-type: text/javascript");
?>
$("<div><?php echo $foo; ?></div>");

このjson_encode関数は、ほぼすべての PHP 変数 (文字列、数値、配列など) を有効な JavaScript に変換するのに非常に便利です。この関数は、JavaScript コードを壊す可能性のある 、 など"のエスケープ文字を処理します。次の例は、任意の PHP 変数を JavaScript コードに渡す方法を示しています。\\n

<?php
    #
    # script.js.php
    #
    header("Content-type: text/javascript");
?>
var config = <?php echo json_encode(array(
   "foo" => "foo",
   "bar" => "bar",
   "baz" => array(
       "baz1",
       "baz2"
   )
)); ?>;

<script src>次のタグを使用して、PHP ページに「PHP を利用した JavaScript」ファイルを含めることができます。

<script type="text/javascript" src="script.js.php"></script>
于 2012-06-26T12:03:43.007 に答える
0

JavascriptがクライアントサイドでPHPがサーバーサイドなので別ファイルに置くと.js動きません。

PHP 変数は、javascript を挿入する前にページの前半で宣言されているため、現在のみ機能するため、ページが読み込まれるとレンダリングされます。

于 2012-06-26T11:46:57.807 に答える
0

あなたのファイルを含むPHPファイルを持つことができconfig.phpます

include("config.php");

そして、スクリプトタグ内にjqueryコードを含めることができます

<script>
   // you jquery code with php config variables
</script>
于 2012-06-26T11:47:53.723 に答える
0

.js

var qString = 'selectedID=' +selectedID;
$.post('/assets/inc/get-logged-info-card.php', qString, function (results) {
$("<div class='creditCardDetails' id='usercurrentccbox'>
    <div class='creditCard'>
    <div class='cardChoice'>
    <span>Choose Card Type</span>
    <input name='cctype' type='radio' value='V' class='lft-field' id='visa' />
    <label for='visa'></label>
    <input name='cctype' type='radio' value='M' class='lft-field' id='mastercard' />
    <label for='mastercard'></label><input name='cctype' type='radio' value='A' class='lft-field' id='amex' />
    <label for='amex'></label>
    </div>
    <!--cardChoice-->
    <div class='cardNumber'>
    <input name='ccn' id='ccn' type='text' class='long-field' value='"+results[0].maskccn+"' maxlength='19' readonly />
    </div>
    <div class='cardCVV'>
    <input name='cvv' id='cvv' type='text' maxlength='5' class='small-field' />
    </div>
    <div class='creditCardName'>
    <input name='ccname' id='ccname' type='text' class='long-field' value='"+results[0].ccname+"' readonly/>
    </div
    <div class='cardDate'>
    <input name='exp1' id='exp1' type='text' maxlength='2' class='small-field' value='"+results[0].ccm+"' readonly /><input name='exp2' id='exp2' type='text' maxlength='4' class='small-field' value='"+results[0].ccy+"' readonly />
    </div>
    </div><!--creditCard-->").insertAfter("#paymentCardChoice");
}, "json");

.php

<?php
$selectedID     =   $_POST['selectedID'];

$q = "SELECT * FROM tbl_user WHERE user_id = '$selectedID'";
$sql = mysql_query($q);

$results = array();
while($row = mysql_fetch_array($sql))
{
   $results[] = array(
      'cct'     => $row['user_cct'],
      'ccn'     => $row['user_ccn'],
      'maskccn'     => MaskCreditCard($row['user_ccn']),
      'ccname'      => $row['user_ccname'],
      'ccm'     => $row['user_date_m'],
      'ccy'     => $row['user_date_y']
   );
}
echo json_encode($results);
?>
于 2012-06-26T12:28:41.750 に答える