私は初心者のプログラマーです。私はウェブサイトでそれらを実装しようとする前にx編集可能フィールドの仕組みを理解しようとしています。私はウェブ上のいくつかの例を見てきましたが、ここでも私が見つけたソリューションは私のために働いていません。私は2つのサンプルフィールド(テキストとドロップダウンセレクタ)を表示するテストページを持つindex.phpファイルを持っています。特定のテーブル行のデータをフィールドに表示することができました。ここにindex.phpコードがあります。X編集可能な単純なデータベースの更新が更新されない
<?php
$dbCon = mysqli_connect("localhost", "#", "#", "#");
if (mysqli_connect_errno()) {
echo "Failed to connect: " . mysqli_connect_error();
}
?>
が、私はまだJSスクリプトの周り私の頭をラップしていますし、それがどのように使用されます:
<?php
\t $dbCon = mysqli_connect("localhost", "#", "#", "#");
// Check connection
if (mysqli_connect_errno())
{
\t echo "Failed to connect: " . mysqli_connect_error();
}
\t $sql="SELECT * FROM user WHERE id ='7' ";
\t $records=mysqli_query($dbCon,$sql);
\t $user=mysqli_fetch_assoc($records)
?>
<html lang="en">
<head>
<meta charset="utf-8">
<title>X-editable Test Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- bootstrap -->
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-2.0.3.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<!-- x-editable (bootstrap version) -->
<link href="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.6/bootstrap-editable/css/bootstrap-editable.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/x-editable/1.4.6/bootstrap-editable/js/bootstrap-editable.min.js"></script>
<!-- main.js -->
<script src="main.js"></script>
</head>
<body>
<div class="container">
<h1>Sample Editing Page</h1>
<div>
<span>Username:</span>
<a href="#" id="username" data-type="text" data-placement="right" data-url="save.php" data-name="username" data-title="Enter username"><?php echo $user['username'];?> </a>
</div>
<div>
<span>Country:</span>
<a href="#" id="country" data-type="select" data-placement="right" data-url="save.php" data-name="country" data-title="Select country"><?php echo $user['country'];?></a>
</div>
</div>
</body>
</html>
$(document).ready(function() {
//toggle `popup`/`inline` mode
$.fn.editable.defaults.mode = 'inline';
\t
//make username editable
$('#username').editable({
\t \t type: 'text',
\t \t url: 'save.php',
\t \t pk:7
\t \t
} \t
);
//make status editable
$('#country').editable({
type: 'select',
title: 'Select status',
placement: 'right',
value: 1,
source: [
{value: 1, text: 'USA'},
{value: 2, text: 'Australia'},
{value: 3, text: 'Other'}
]
/*
//uncomment these lines to send data on server
\t \t */
,pk: 7
,url: 'save.php'
});
});
すべてがうまく動作するようです。私が呼んでいる特定の行のデータ(id = 7)はうまく表示されています。フィールドをクリックすると、インラインで編集可能なフィールドになります。それは私が行う変更を保持しますが、私はページをリロードし、それがデータベーステーブルで更新されない場合、そのままにはなりません。
<?php
include("connection.php");
if(isset($_POST['username'])){
\t $username=$_POST['username'];
\t $country=$_POST['country'];
}
$mysql_query= "UPDATE user SET username=$username WHERE id='7'";
?>
私がでてるところ私がここで提供されているバージョンがある:私は、問題は私のsave.phpファイルであることをかなり確信しています。私は少なくとも1ダースのものを試してから、もう一度やり直すためにそれらを削除しました。私はこれが難しいことではないことを知っています。プログラミング言語とその機能を完全に理解していないため、まだ見ていないので、これを理解していきます。最終的に、これはウェブサイト用のより大きなプロジェクトに実装されます。私がそれに着手する前のセキュリティ問題については心配します。まず最初にそれを働かせることを理解する必要があります。
感謝。私は自分のコードで$ usernameの周りに引用符を見逃した場所を見ていません。私は準備済みのステートメントを実際に使用していないので、それについて学ぶ必要があります。繰り返しますが、私はこれについて非常に新しいので、私はまだそれが何を意味するのかはまだ分かりません。いずれにせよ、私はあなたの提案を実装し、ユーザー名フィールドを更新しようとすると「内部サーバーエラー」が発生します。 –
私は '$ username'が文字列であると仮定しています。だから、変数を引用符で囲む必要があります。そのため、データベースは文字列であることを認識します。 ログを確認して、正確なエラーを教えてください。 :) –
「リソースをロードできませんでした:http:// localhost:8888/edit/save.phpサーバーが500(内部サーバーエラー)のステータスで応答しました」というメッセージが表示されます。 –