1

以下のコードを参照してください。

$dArr = '<script>document.write(volunteerDist);</script>';

$dArr は、voluntaryDist の値を取得します。echo $dArr は値 4.1,9.4,2.3,4.7,9.1,14.7,3.2,7.1,4.1,0.5 を出力します

これを配列内の要素に分割したかったので、次を使用しました。

$dArr = preg_split("/,/", $dArr);

しかし $dArr は、すべての値である 1 つの要素のみを持つ配列です。つまり、preg_split は行われませんでした。私も試しました

$temp=explode(",", $dArr);

それでもうまくいきませんでした。

値(つまり、上記の数値)を貼り付けて、直接 preg_split しようとしました

$temp=explode(",", '4.1,9.4,2.3,4.7,9.1,14.7,3.2,7.1,4.1,0.5');

そしてそれは成功しました。なにが問題ですか?$dArr をエコーすると、数字が出力されることに注意してください。

4

1 に答える 1

5

ここでは、サーバー側とクライアント側のコードとロジックを混在させています。

document.write出力をブラウザーに書き込むメソッドにより、「正しい」出力が表示されます。

サーバー側のコードでクライアント側の変数を直接操作することはできません。

AJAX を使用してクライアント側の値をサーバーに送信するか、クライアント側で解析する必要があります。

<script type="text/javascript">
var dArr = volunteerDist.split(",");
for (var i = 0; i < dArr.length; i++)
   document.write(dArr[i] + "<br />");
</script>

編集: 私は PHP 開発者ではありませんが、他の投稿を読むと十分なサンプル コードが得られました。

クライアント側のvolunteerDist変数の値を PHP に送信してデータベースに保存するには、まずコードに jQuery を含めます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

変数が定義および作成された後、これをどこかに置きます。

<script type="text/javascript">
$.ajax({
    type: "POST",
    url: "yourpagehere.php",
    data: "volunteerDist=" + volunteerDist,
    dataType: "html"
});
</script>

そして、このデータを読み取ってデータベースに追加するには:

<?php
    $volunteerDist = $_POST['volunteerDist'];
    if(isset($volunteerDist)) {
        $dArr = preg_split("/,/", $volunteerDist);
        foreach($dArr as $volunteer) {
            $sql = "INSERT INTO TableName (fieldname) VALUES ('".$volunteer."')";
            mysql_query($sql) or die(mysql_error());
        }
    }
?>

もちろん、ページ名、テーブル名、フィールド名を実際の値に変更する必要があります。

于 2012-03-15T11:52:22.680 に答える