2017-12-27 9 views
0

私はphpを使用してデータベースにデータを挿入しようとしていますが、実際にこれを行う方法はわかりません。AJAXデータの読み込み

私のAjaxのコードは次のとおりです。

if(window.location == "path/to/file") { 
    $(window).on('load',function() { 
     var id = $("#id").val(); 
     var cd = $("#cd").val(); 
     var ed = $("#ed").val(); 
     var status = $("#status").val(); 

     if(ed == cd){ 
      status = "Stopped"; 
      console.log(status); 
      $.ajax({ 
       type: "POST", 
       url: "wba.php", 
       data: "status=" + status, 
       success: function(data) { 
        alert("sucess"); 
       } 
      }); 
     } 
     else{ 
      console.log('Running'); 
     } 
    }); 
} 

今私はどのようにAJAXからデータを取得し、PHPを使用して、私のデシベルに挿入することを知らないと、私のDBのテーブル構造が

INSERT into table_name(id, cd, ed, status) VALUES(); 

です私のWBA.phpファイルコードは、このファイルで以下に述べられています。私は最初にテーブルからデータを取得しています。そして、現在の時間が終了時間と等しくなると、このページは自動的に広告のステータスを実行中から停止中に変更し、ページをリフレッシュしたり、バットをクリックしなくてもに。 AJAXを介して複数の値を渡すために

<div id="main-content"> 
<div class="casteform"> 
<?php 
    $query = "SELECT * FROM advertisements WHERE ad_category = 'weddingbellsad'"; 
    $run = mysqli_query($con, $query); 
    if(mysqli_num_rows($run) > 0){ 
     while ($row = mysqli_fetch_assoc($run)) { 
      $ad_id = mysqli_real_escape_string($con, $row['ad_id']); 
      $ad_company = mysqli_real_escape_string($con, $row['ad_company']); 
      $ad_start_date = mysqli_real_escape_string($con, $row['ad_start_date']); 
      $ad_duration = mysqli_real_escape_string($con, $row['ad_duration']); 
      $ad_reminder_days = mysqli_real_escape_string($con, $row['ad_reminder_days']); 
      $ad_reminder_date = mysqli_real_escape_string($con, $row['ad_reminder_date']); 
      $ad_end_date = mysqli_real_escape_string($con, $row['ad_end_date']); 
      $ad_payment_method = mysqli_real_escape_string($con, $row['ad_payment_method']); 
      $ad_payment_amount = mysqli_real_escape_string($con, $row['ad_payment_amount']); 
      $ad_category = mysqli_real_escape_string($con, $row['ad_category']); 
      $ad_status = mysqli_real_escape_string($con, $row['ad_status']); 
      $ad_current_date = date('Y-m-d h:i:s'); 
     ?> 
      <div class="adrow"> 
       <h4>Company Name: <?php echo $ad_company . " (" . $ad_id . ") "; ?> <small><?php echo $ad_status ?></small></h4> 
       <ul> 
        <li><span>Starting Date:</span> <?php echo $ad_start_date; ?></li> 
        <li><span>Duration:</span> <?php echo $ad_duration . " Days"; ?></li> 
        <li><span>Reminder:</span> <?php echo "Before ". $ad_reminder_days . " Day(s)"; ?></li> 
        <li><span>Reminder Date:</span> <?php echo $ad_reminder_date; ?></li> 
        <li><span>Ending Date:</span> <?php echo $ad_end_date; ?></li> 
        <li><span>Payment Method:</span> <?php echo $ad_payment_method; ?></li> 
        <li><span>Payment Amount:</span> <?php echo "Rs - " . $ad_payment_amount; ?></li> 
        <li><span>Ad Category:</span> <?php echo $ad_category; ?></li> 
       </ul> 
       <form> 
        <input type="text" id="id" value="<?php echo $ad_id; ?>" /> 
        <input type="text" id="cd" value="<?php echo $ad_current_date; ?>" /> 
        <input type="text" id="ed" value="<?php echo $ad_end_date; ?>" /> 
        <input type="text" id="status" value="<?php echo $ad_status; ?>" /> 
       </form> 
      </div> 
     <?php 
     } 
    } 
    else{ 
     header("location: view-wedding-bell-ad.php?error=".urlencode("No advertisements found so far.")); 
     exit(); 
    } 
?> 
</div> 

+1

があなたのwba.phpファイルのですか? –

+2

あなたがajaxを通過している唯一のvarはステータスです。あなたのPHPでは、このように状態を取得することしかできません... $ _POST ['status'] – Roy

+0

@MdMonjurUlHasan WBAファイルコードも追加しました。 –

答えて

1

、あなたは(dataの変化に注意してください)のようなあなたの.ajaxコールを調整する必要があります:PHP側の

$.ajax({ 
    type: "POST", 
    url: "wba.php", 
    data: { 
     "id" : id, 
     "cd" : cd, 
     "ed" : ed, 
     "status" : status 
    }, 
    success: function(data) { 
     alert("sucess"); 
    } 
}); 

そして、あなたの中にwba.phpこれらの値は、

$_POST['id'] 
$_POST['cd'] 
$_POST['ed'] 
$_POST['status'] 

他のすべてのデータベースのやりとりについては、あなた自身で試してみて、あなたの目標と必要な結果を見つけ出す必要があります。 StackOverflowの幅広く範囲外です。他の誰かがこの時点であなたのためにすべてを書くことができます。あなたが助けを必要とする場合は、いつもあなたが走っている特定の壁をカバーするために別の質問をすることができます。

重要性:「準備済みの文」を必ず使用してください。それが最も一般的な攻撃方法の1つからあなたを守るのに役立ちます。

例スターター(http://php.net/manual/en/mysqli-stmt.bind-param.php):

$stmt = $mysqli->prepare("INSERT into table_name(id, cd, ed, status) VALUES(?, ?, ?, ?)"); 
$stmt->bind_param('ssss', $_POST['id'], $_POST['cd'], $_POST['ed'], $_POST['status']); 
$stmt->execute(); 
+0

私はstausのデータベーステーブルのフィールド値を更新しようとしましたが、ここでは私のコードです $ id = mysqli_real_escape_string($ con、$ _POST ['id']); $ status = mysqli_real_escape_string($ con、$ _POST ['status']); $ upq = "UPDATE広告SET ad_status = '$ status' WHERE ad_id = '$ id'"; $ rupq = mysqli_query($ con、$ query); お知らせ:未定義のインデックス:ライン上のパスの\ wba.phpのid 62 お知らせ:未定義のインデックス:ライン63上のパスの\ wba.php内の状態、それはまた、私の下に記載されているエラーを与えている。このほか –

+0

POST変数のようなサウンドは、それらの変数を定義する時点では送信されていません。あなたがwba.phpの最初の読み込み時にそれをしているなら、それらは存在しません。それがajaxから来た場合にのみ行う必要があります。だからif(isset($ _ POST ['id'])){...のような存在を確認してください} 'を実行してからSQLを実行します。 – IncredibleHat

+0

Ajax id、statusがconsole.log()では適切な結果を示していますが、データベースレコードを更新していないので、この中で私を助けてください。ここにはコードがあります if(isset($ _ POST ['id'])){ echo $ id = mysqli_real_escape_string($ con、$ _POST ['id']); echo $ status = mysqli_real_escape_string($ con、$ _POST ['status']); $ upq = "UPDATE広告SET ad_status = '$ status' WHERE ad_id = '$ id'"; $ rupq = mysqli_query($ con、$ upq); } –

関連する問題