-1

以下は、スクリプトタグ内の私のhtmlファイルの頭にあります:

$(document).ready(function(){ 
                 $("#Submit").click(function(){
                     var name = $("#name").val();
                     $.ajax({
                         url : "function.php", 
                         type : "POST",
                         data : {"firstname":name},
                         success : function(n){
                            //more code here                         } 
                     });
                 });
 }

これは HTML フォームです:

<div class="myForm">
                <input name="name" id="name" value="name" onfocus="if (this.value == 'Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Name';}" type="text"  />
                <input type="button" value="Submit" id="Submit">
            </div>

function.php というファイルに保存された私のPHPは次のとおりです。

<?php
$con=mysqli_connect( "test", "", "", "test");
// Check connection
$name = $_POST['firstname'];
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO customers (name) VALUES (" + $name + ")");

mysqli_close($con);
?>

関数の呼び出しには時間がかかり、データベースには何も保存されません。JQuery/Ajax は初めてです。ここでのデバッグ オプションは何ですか? 考えられる問題は何ですか?

4

1 に答える 1

2

このコードを試してください。コードを編集し、データベースに接続するための新しいアプローチである PDO を追加しました。これはより安全で、データを自動的にエスケープします。

PHP に多くの構文エラーがありました。PHPの文字列追加演算子のようなものではあり.ません+

<?php
$name = $_POST['firstname'];
try {
    // Prepare our connection string and execute it
    $con = new PDO("mysql:host=".HOST.";dbname=".DBNAME, USER, PASS);
} catch(PDOException $e) {  
    // Connection error jumps here
    echo $e->getMessage();  
}
// Define our query here
$query = $con->prepare("INSERT INTO customers (name) VALUES (:name)");
// Define our query data here. the name here maps to the :name in the query.
$data = array("name" => $name);
try {
    // Try to execute our query
    $query->execute($data);
} catch(PDOException $e) {
    // Insert error jumps here
    echo $e->getMessage(); 
}
?>

ホスト、データベース名、ユーザーを入力し、コードに記載されている場所に渡すだけで準備完了です。

Firefox にインストールされている php コードをデバッグするFirebugには、html ページでページを右クリックして を選択し、firebug を開きますInspect element with firebug。パネルを開くNetと、リクエストが進行中であることがわかります。応答を確認すると、php ページにエラーが表示される可能性があります。

幸運を!

于 2013-05-31T22:55:22.960 に答える