よしを取っています。私はjEditableの新人です。私がjEditableで持っている問題を説明しましょう。jEditableは1つのID
id car make
1 panamera porsche
2 italia ferraris
3 avantador lamborghini
4 slk mercedes
と私はwhileループ内でこのテーブルエコーつもりだし、以下のコードである - -
私は私のデータベースに、この単純なテーブルを持っている上記のコードで
<script type="text/javascript">
<?php
$query2 = "SELECT * FROM inplace LIMIT 0, 6";
$result2 = mysql_query($query2) or die ('Query couldn\'t be executed');
$row2 = mysql_fetch_assoc($result2);
?>
$(function() {
$(".items").editable("handler.php", {
submitdata : {userid: "<?php echo $row2['id']; ?>"},
indicator : "<img src='img/indicator.gif'>",
tooltip : "Doubleclick to edit...",
event : "click",
onblur : "submit",
name : 'newvalue',
id : 'elementid',
});
});
</script>
</head>
<body>
<ul>
<?php
$query = "SELECT * FROM inplace LIMIT 0, 6";
$result = mysql_query($query) or die ('Query couldn\'t be executed');
while ($row = mysql_fetch_assoc($result)) {
echo '<li class="items" id="car">'.$row['car'].'</li>';
echo '<li class="items" id="make">'.$row['make'].'</li>';
}
?>
</ul>
は、私はnewvalue
(ユーザー編集)とelementid
(carまたはmake)をjeditableスクリプトに渡しています。また、更新する正しいデータベースIDを特定するのに役立つもう1つの識別子が必要です。だから私はsubmitdata : {userid: "<?php echo $row2['id']; ?>"}
のデータベースIDを渡そうとしています。その方法が正しいかどうかはわかりません。
以下「handler.php」ファイルに更新クエリである -
require("db.php");
function fail($msg) {
header('HTTP/1.0 404 Not Found');
die($msg);
}
$id = (int)@$_POST['userid'];
$field = @$_POST['elementid'];
$allowed_fields = array('car','make');
if (!in_array($field, $allowed_fields)) fail('Invalid or missing field.', 404);
$newvalue = $_POST['newvalue'];
$query = "UPDATE inplace SET `$field`='$newvalue' WHERE id=$id";
$result = mysql_query($query);
echo $newvalue;
ので、ここでの問題は、このsubmitdata : {userid: "<?php echo $row2['id']; ?>"}
が唯一の第一のidを渡しています。つまり、それはただ1つのIDを渡すことを意味します。だから、italia
またはavantador
をids2と3にそれぞれ編集しても、1番目のIDが更新されます。私がクエリをエコーするとき、あなたが編集するどの車でも、それはいつもUPDATE inplace SETcar='volante' WHERE id=1
として読まれます。送信データに2または3または4を直接書き込むと、正しく更新されます。その1つのIDだけを渡します。誰かが私にid="car-'.$row['id'].'"
のような使い方を提案し、それを爆発させてからfooやstuffを使用しました。私はそれを使用しようとしましたが、私の仕事はありませんでした。これのための解決策を探しています。
クライシス - 私は答えを試みました。しかし、私が質問をエコーしたときに、その場所のUPDATEとしての読書は、 'car' = 'panamera' WHERE id = 0です。 Idは0と読んでいる。 – newbiewebb
ええ、私はそれをテストしなかった。これはおそらく '$(this).attr(" carid ")'と関係しています。それが正しい値を得るためのセレクタであるかどうかはわかりません。それは同様でなければなりません。 –
submitdataに$(this).attr( "carid")を使用すると、更新クエリで何かを変更する必要がありますか? – newbiewebb