2

コードと一緒にJavaScriptmulti select関数を使用しています。インターフェイスでは複数の要素を選択できますが、php コードを使用して値を取得すると、1 つの値しか取得されません。誰かが間違っていることを教えてもらえますか?listboxphp

JavaScript:

 <script type="text/javascript">
$(function(){
    $("select").multiselect();
});
</script>

HTML コード:

<select title="Basic example" multiple="multiple" name="example-basic" size="5">
    <option value="Sgoop">Sgoop</option>
    <option value="Monet">Monet</option>
    <option value="Hive">Hive</option>
    <option value="Mahout">Mahout</option>
    <option value="R">R</option>
    <option value="Storm">Storm</option>
    <option value="Flume">Flume</option>
    <option value="Solr">Solr</option>
    <option value="Python">Python</option>
    <option value="Splunk">Splunk</option>
    <option value="Ruby">Ruby</option>
    <option value="perl">perl</option>
    </select>

mysql コード:

$sql="INSERT INTO details (name, type, domain, rights, description, author, version, download)
VALUES
('$_POST[compname]','$_POST[examplebasic]','$_POST[examplebasic2]','$_POST[examplebasic3]','$_POST[textarea]','$_POST[name]',1,0)";

examplebasic を examplebasic[] に変更した後、配列から文字列への変換エラーが発生しました。これを解決するにはどうすればよいですか

4

1 に答える 1

1

編集


に名前を変更

name="example-basic[]"

そしてあなたのphpコードで:

$options = json_encode( $_POST['example-basic'] );

// and for populating you can use `json_decode` to get the array again

または、配列項目を分割,してデータベース フィールドに挿入することもできます。

$options = implode( ',', $_POST['example-basic'] );

詳細については、 implode php マニュアルを参照してください。

// then for populating use `explode` to convert it to array

$sql="INSERT INTO details (name, type, domain, rights, description, author, version, download)

VALUES ('$_POST[compname]','$options','example','example2','$_POST[textarea]','$_POST[name]',1,0)";
于 2013-03-15T07:57:35.987 に答える