-1

html構造は次のとおりです。

<select name="marke" class="marke">
<option value="1">Bosch</option></select>

<select name="modell" class="modell">
<option value="2">Nocria 14 LBC</option></select>

これが私のPHP文字列です(簡略化)

$modellz = $_POST['marke']. ' ' .$_POST['modell'];
$insertQuery = "INSERT INTO producz (model)
VALUES
('" . $modellz . "')";

<option>- タグ内の名前を取得して、データベースに投稿しようとしています。しかし、このコードでは値を取得するだけです。これを実行する1 2と、データベースにアクセスします。

でも私はしたいBosch Nocria 14 LBC

OBS: jquery 選択スクリプトに VALUE 属性が必要です。

助けてください!

4

4 に答える 4

4

オプションのvalueは、サーバーに渡されるものです。オプション内のテキストを受け取りたい場合は、代わりにvalue属性を完全に削除してください。

<option>Nocria 14 LBC</option>

選択すると、実際の文字列が送信されます。

それ以外は、現在のPHPコードは攻撃に対して脆弱であるため、SQLインジェクションについてお読みください。

于 2012-07-16T14:20:06.187 に答える
1

make value ='Bosch'を作成するか、PHPに「1」を必要な文字列に変換する配列を作成します。

これ:

<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>

<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>

また

<?
Options = Array();
Options['1'] = "Bosch";
Options["2"] = "Nocria 14 LBC";
?>

オプション[挿入]を使用して実際の値を取得します

また、セキュリティのためにmysql_real_escape_stringまたはstring-> real_escape()を使用することを忘れないでください

于 2012-07-16T14:20:40.773 に答える
1

問題はHTMLにあります。valuefor eachタグは、<option>POSTリクエストで送信されるものです。

HTMLを次のように変更します。

<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>

<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>

そして、あなたはあなたが望む結果を見るでしょう。

また、データベースに保存する前に、フォーム入力を検証/サニタイズしてください。mysql関数を使用している場合は、を試してくださいmysql_real_escape_string()

jQueryが各オプションの元のIDにアクセスする必要がある場合は、2つの方法のいずれかをお勧めします。rel:などの個別の属性を各オプションに追加するか<option value="Bosch" rel="1">Bosch</option>、コードをそのままにして(<option value="1">Bosch</option>)、PHPにIDと値の組み合わせを認識させます。

実際のデータベース構造は、テキスト値の代わりに実際のIDをサポートするように変更でき、場合によっては変更する必要があります。

于 2012-07-16T14:21:17.803 に答える
0

これは、オプションの値を Bosch と Nocria に設定する必要があるためです。POST は、オプション値を対応する<select>名前に保存します。これを試して

<select name="marke" class="marke">
<option value="Bosch">Bosch</option></select>

<select name="modell" class="modell">
<option value="Nocria 14 LBC">Nocria 14 LBC</option></select>
于 2012-07-16T14:21:40.333 に答える