2017-02-13 64 views
-1

什麼應該發生爲什麼我不能使用ajax傳遞字符串?

  • 我在與用ajax傳遞字符串的問題。我的代碼應該做的是從字段中獲取文本並將其傳遞到「edit.php」,其中查詢將使用接收到的數據更新數據庫。

什麼是從外地發生

  • 數據被收到,然後立即送往「edit.php」,其中查詢與更新收到值的數據庫。

哪裏的問題

  • 雖然不具有發送數問題,在該領域的所有數據是整數,AJAX(我猜的),如果它至少包含不發送數據1個字符與數字不同。我的問題的

  • 這與NUMBERS

FIELD1 = 123

FIELD2 = 321

查詢:SUCCESS

  • 這就是問題OCCURE

FIELD1 = 123 一個

FIELD2 = 321 一個

查詢:FAIL

Ajax代碼

<script text="text/javascript"> 
     $('#button_save').click(function(){ 
      var edited_message_id = document.getElementById('id_message_hidden').value; 
      var edited_title = document.getElementById('user_event_title').value; 
      var edited_message = document.getElementById('user_message_input').value; 
      alert(edited_title.concat(edited_message)); 
      if(confirm("Deseja editar esta mensagem?")){ 
       $.ajax({ 
        url: 'edit.php', 
        type: 'post', 
        data: {idmensagem:edited_message_id, 
          newtitle:edited_title, 
          newmessage:edited_message,} 
       }); 
      }; 
      return false; 
     }); 
    </script> 

edit.php

<?php 
session_start(); 

include 'connect.php'; 

if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 


if(!isset($_SESSION['pass'])){ //if login in session is not set 
    header("Location:index.php"); 
    } 

$message_id = $_POST['idmensagem']; 
$new_title = $_POST['newtitle']; 
$new_message = $_POST['newmessage']; 

$query_update = mysqli_query($con, "UPDATE tbl_mensagens SET title_text = $new_title, txt_mensagem = $new_message WHERE id_mensagem = $message_id"); 

?> 
+2

您可以檢查該表上的字段的數據類型嗎? – Hackerman

+0

AJAX沒有問題發送字符串。別的東西正在導致錯誤。正如哈克曼建議的,你確定你的專欄應該接受字符串還是他們的其他類型?你有沒有檢查你的服務器日誌是否有錯誤? –

+0

@哈克曼,一開始我以爲是一樣的。但我仍然可以插入數據庫。我有一個簡單的代碼來插入字段中的內容。所以數據類型是正確的。 –

回答

1

你需要把字符串中引號的SQL:

$query_update = mysqli_query($con, "UPDATE tbl_mensagens SET title_text = '$new_title', txt_mensagem = '$new_message' WHERE id_mensagem = $message_id"); 

但它會更好地使用準備好的聲明,以避免SQL注入問題。

$query_update = mysqli_prepare($con, "UPDATE tbl_mensagens SET title_text = ?, txt_mensagem = ? WHERE id_mensagem = ?"); 
mysqli_stmt_bind_param($query_update, "ssi", $new_title, $new_message, $message_id); 
mysqli_stmt_execute($query_update); 
+0

哦,我的上帝...我很抱歉浪費你的時間...這是正確的 –

相關問題