0

次の方法で、PHP から javasript 関数に vlues を渡しています。

<select onChange="display_databody(<?=$manufacturers_id?>,<?=$modelID?>,this.value,<?=**$month_year**?>);">

$month_year は、MySQL から取得した文字列です。

JavaScript 関数がこの値を取得すると、-8 または -13 のような値になります。

json_encode() を試しましたが、機能していません。

4

3 に答える 3

1

$month_year私は脳波を持っていて、それは2012年1月のような文字列だと推測し1-12ました。これにより、HTMLは次のようになります。

 <select onChange="display_databody(2,4,this.value,1-12);">

Javascriptは-11、関数を実行するときにその値を(ここのように)評価します。

文字列値を一重引用符で囲みます。最初の2つが完全に数値でない場合は、最初の2つでもこれを行う必要がある場合があります。わかりやすくするために、ここで線を分割します。おそらく、一緒に結合し直します。

 <select 
     onChange="display_databody(<?=$manufacturers_id?>,
     <?=$modelID?>,
     this.value,
     '<?=$month_year?>');">
于 2012-05-27T08:18:18.597 に答える
1

addslashes変数をエスケープするために使用できます:

<select onChange="display_databody('<?= addslashes($manufacturers_id) ?>',
    '<?= addslashes($modelID); ?>', this.value, '<?= addslashes($month_year); ?>');">

またはjQueryとを使用しますhtmlspecialchars

<select onChange="display_databody(this)" 
    data-manufacturer="<?= htmlspecialchars($manufacturers_id); ?>" 
    data-monthyear="<?= htmlspecialchars($month_year); ?>">

次に、関数内で:

function display_databody(dropdown) {
    var $dropdown = $(dropdown),
    dropdown_value = $dropdown.val(),
    manufacturer_id = $dropdown.data('manufacturer'),
    month_year = $dropdown.data('monthyear');

    // your code
}
于 2012-05-27T08:08:04.440 に答える
-1

変数を書き込むにはechoを使用する必要があります

<select onChange="display_databody(<?php echo $manufacturers_id ?>,<?php echo $modelID ?>,this.value,<?php echo $month_year ?>);">
于 2012-05-27T07:57:33.503 に答える