2012-02-16 10 views
1

基本的に、私はこれのための解決策を持っていますが、他の方法でよりうまくいくかどうかは疑問です。MYSQL/PHPテーブルから複数の値をjQueryに渡す

私はMYSQLの値でPHPで作成しているテーブルを持っています。表の各項目には複数の値があります。各行には単一リンクがあり、このリンクをクリックするとjQuery関数が起動します。各リンクではVALUE属性は複数のMySQLのフィールドの値でもありますし、& &に参加しました:

PHPコードです:リンク上でclickinときまで発射する

foreach ($this->_data as $l) 
    { 
     ?> 
     ... 
     <td><a href="#" class="clickMe" value="<?php echo $l->data1 . '&&' . $l->data2; ?>">Link</a></td> 
     ... 
     <?php 
    } 

とjQueryの機能は次のとおりです。

$(".clickMe").click(function() { 
    myData = $(this).attr('value').split('&&'); 
}); 

スクリプト& &にVALUE属性で文字列を分割した値を持つ配列MYDATAを作成します。

MYDATA [0] => $ Lから渡された値 - > _ PHPでDATA1は

MYDATA [1] => $ Lから渡された値は、 - > _

PHPでdata2のは、これはそれを行うには正しい方法です。 ?

+0

..:あなたのような単一の正規表現を使用することができるよう

そして、PHP側では、それは、それを分割する前に一つの値の形式を検証するために少し簡単です http://stackoverflow.com/questions/9311655/selecting-multiple-users-and-sending-them-an-invite/9312054#9312054 非常によく似ています。 – gorelative

答えて

1

データに& &が含まれていない限り、問題ありません。 PHPでjson_encode()を使用し、これをJavaScriptの配列にデコードすることができます。これはより標準的な解決策になります。

+0

私はJSONを使うべきだと思っていましたが、私の汚れた解決策が受け入れられるかどうか疑問に思っていました:) –

+0

それは受け入れられるか良いですか? :P – deed02392

0

&&はブール値のANDのように見えますが、これはお勧めできません。代わりに、私はおそらくそれらを分離するパイプのような何かを使用するだろうval1|val2

あなたは、結合された文字列全体をPHPに渡し、そこに分割する方が良いと思います。 2つの結果の値を適切なポストに入れたり、変数をPHPに送信したりする必要がなくなります。この質問に私の答えを参照してください

// Validate both values at once: 1 or more digits, a pipe, and one or more digits 
if (preg_match('/^(\d+)\|(\d+)$/', $_POST['jqueryinput'])) { 
    // explode() and use in PHP... 
    list($val1, $val2) = explode("|", $_POST['jqueryinput']); 
} 
関連する問題