1

StackOverFlowを検索しましたが、探しているものが見つからなかったので、聞きたいことを投稿します。

私はPHPの世界に初めて来た人です。データを取得し、WAPインターフェイスに表示するスクリプトを書き始めたのですが、問題はデータ挿入ページ用に書いている部分にあります。または管理ページ。私はすべてが機能していますが、特定の処理ページに移動せずにAJAXを使用してメッセージを表示する方法を知りたいです。

プロセスページ、

<?php


include ('connect.php');

$data = ("SELECT * FROM poiinfo");

$poiName = $_REQUEST['Name'];
$poiDes = $_REQUEST['Descrip'];
$poiCon = $_REQUEST['ConInfo'];
/*$poiImg = $_REQUEST['Image']; */

$dbData = "INSERT INTO poiinfo(`Name`, `Des.`, `Contact`) VALUES ('$poiName','$poiDes','$poiCon')";

$putData = mysql_query($dbData);

if ($putData){
echo "Data inserted";
}else {
echo "Not Done";
}
?>

AJAXを使用してメッセージを取得する方法を教えてください。

私はあなたたちが私にくれたコード例を使用しましたが、私はまだ仕事を終わらせていません。私が間違っていることを見つけるのを手伝ってくれませんか。

私のフォーム、

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function(){
$("#save_data").click(function(){
var name  = document.getElementById("Name");
var desc = document.getElementById("Descrip");
var con = document.getElementById("ConInfo");

var dataString = 'Name='+name'&Descrip='+desc'&ConInfo='con;
$.ajax({
  type:'POST',
  data:dataString,
  url:'addpoipro.php',
  success:function(data){
   if(data="Data inserted") {
      alert("Insertion Success");
    } else {
      alert("Not Inserted"); 
    }
    } 
   });
   });
   });
   </script>

   <title>AddPOI</title>
   </head>

   <body>
   <form method="post" enctype="multipart/form-data" name="form1" id="form1">
   <p>
   <label for="poiid">ID :</label>
   <input type="text" name="poiid" id="poiid" readonly="readonly" style="width:70px;" value="<?php echo $tId; ?>" />
   </p>
   <p>
   <label for="Name">POI Name :</label>

   <input type="text" name="Name" id="Name" />
   </p>
   <p>
   <label for="Descrip" style="alignment-adjust:middle">POI Description :</label>
   <textarea name="Descrip" id="Descrip" cols="45" rows="5"></textarea>
   </p>
   <p>
   <label for="ConInfo">Contact Infomation :</label>
   <textarea name="ConInfo" id="ConInfo" cols="45" rows="5"></textarea>
   </p>
   <p>
   <label for="Img">POI Image :</label>
   <!--<input type="file" name="Image" id="Image" /> -->
   </p>
   <p>&nbsp;</p>
   <p>
   <div align="center">
   <input type="button" name="Submit" id="save_data" value="Submit" style="width:100px;" />
   <input type="reset" name="reset" id="reset" value="Rest Data" style="width:100px;" />
   </div>
   </p>
   </form>
   </body>
   </html>

上記4は私のフォームであり、process.phpはその前にあります。ありがとうございます。

4

3 に答える 3

2

jQueryを使用した例$.ajax

$.ajax({
  url: "process.php",
  type: "POST",
  data : { Name : 'John', Descrip : 'some description..', ConInfo : 'some info...' },
  success : function(data){
      if(data == "Data inserted")
      {
          console.log("Success!");
      }
      else
      {
          console.log("fail!");
      }
  }
});
于 2013-01-15T12:21:06.227 に答える
1

jqueryを使用しない別の解決策を次に示します。

index.html

<head>
<script type="text/javascript" src="test.js"></script>

</head>
<body>
<!-- reply from process.php is shown in this div -->
<div id=message></div>
<!-- click to send data -->
<a href="#" onclick="sendData('John','student','no more info')"> click here </a> 
</body>
</html>

test.js

function sendData(Name,description,info) {
        var ajaxRequest;  // The variable that makes Ajax possible!

        try{
            // Opera 8.0+, Firefox, Safari
            ajaxRequest = new XMLHttpRequest();
            }
        catch (e)
            {
            // Internet Explorer Browsers
                try
                    {
                    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                catch (e)
                    {
                        try
                            {
                            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                        catch (e)
                            {
                            // Something went wrong
                            alert("Your browser broke!");
                            return false;
                            }
                    }
            }
        // Create a function that will receive data sent from the server

        ajaxRequest.onreadystatechange = function()
            {
                    var ajaxDisplay = document.getElementById('message');
            if(ajaxRequest.readyState == 4)
                { ajaxDisplay.innerHTML = ajaxRequest.responseText;}
                    else { document.getElementById('message').innerHTML="<span style=\"color:green;\">Loading..</span>"; }
                     }
        var url="process.php?name="+Name+"&Descrip="+description+"&ConInfo="+info;
        ajaxRequest.open("POST", url, true);
        ajaxRequest.send(null);
        }
于 2013-01-15T12:38:34.233 に答える
1

こんなこともできます。

あなたの HTML

<label>Name</labe><input type="text" id="name" name="full_name" value="" />
<label>Address</labe><input type="text" id="addr" name="addr" value="" />
<input type="button" name="save" id="save_data" value="Save" />

jQueryを追加した後のheadセクションで、次のようにします

<script>
 $(document).ready(function(){
  $("#save_data").click(function(){
    var name  = $("#name").val();
    var addr = $("#addr").val();

    var dataString = 'name='+name'&address='+address;
    $.ajax({
      type:'POST',
      data:dataString,
      url:'process.php',
      success:function(data){
       if(data="inserted") {
          alert("Insertion Success");
        } else {
          alert("Not Inserted"); 
        }
     } 
   });
  });
});
</script>

「process.php ページ」

$name = $_POST['name'];
$address = $_POST['address'];

// DO YOUR INSERT QUERY
$insert_query = mysql_query("INSERT QUERY GOES HERE");
if(// CHECK FOR AFFECTED ROWS) {
     echo "inserted";
} else {
     echo "not";
}
于 2013-01-15T12:59:51.860 に答える