0

php whileにはそのようなドロップダウンメニューがあります

<tr id='row<?php echo $row_number;?>'>
    ...
    <td>
        <select name="currency[]" id="currency<?php echo $row_number;?>" >
            <option value=""></option>
            <option value="AUD">AUD</option>
            <option value="EUR">EUR</option>
            <option value="USD">USD</option>
        </select>
    </td>
</tr>

出力では、複数のそのhtmlようなメニューを取得します (理由によりphp while)

ajax値を外部phpファイルに渡そうとしています。

$(document).ready(function () {
    function sendCurrencies() {

        function autosave(suffix) {
            if (($("#currency" + suffix).val()).length > 0) {
                alert($("#currency" + suffix).val());

                $.post(
                    "__foreign_currency_rate.php",
                    $("#row" + suffix + " :input").serialize(),
                    function (data) { $('#load' + suffix).html(data); }
                );
            }//if ( ($("#currency" + suffix).val()).length > 0 ) {
        }//function autosave(suffix) {

        $('[id^="currency"]').each(function (index, currency) {
            var suffix = currency.id.substring(8);
            autosave(suffix);
        });

    }//function sendCurrencies() {

    setInterval(sendCurrencies, 6000);
});//$(document).ready(function() {

問題/質問がコードのこの部分にあるとします$.post("__foreign_currency_rate.php", $("#row" + suffix + " :input").serialize(),

外部phpファイルで最初に取得したものを確認したい

echo '<pre>';
print_r($_POST['currency']);
echo '</pre>';

たとえば、php while3 つのループがあるので、3 つのドロップダウン メニューを取得します。最初に AUD、2 番目に EUR、3 番目に USD を選択します。

すべての値が表示されることprint_r($_POST['currency']);を期待しています。

ただし、値は 2 つしか表示されません

Array
(
    [0] => EUR
)

Array
(
    [0] => AUD
)

ただし、alert($("#currency" + suffix).val());ポップアップメニューを使用すると、すべての値が表示されます。

phpすべての値が表示されないのはなぜですか?

理解できない理由$("#row" + suffix + " :input").serialize()で、2つの値のみを渡します...

にドロップダウン メニューの値を記録しようとしましたmysql。すべての値が記録されます。ただし、 withprint_rはすべての値を出力するわけではありません。何かクレイジー....

4

1 に答える 1

0

これを試して

    $.post("__foreign_currency_rate.php", $("#currency" + suffix + "   :input").serialize(), function(data) {
$('#load' + suffix).html(data);
  });
于 2013-08-22T05:32:06.640 に答える