2016-01-15 61 views
-1

我想在表單提交時使用javascript和php的組合來更新sql數據庫中的一列。 sql數據庫的名稱是「answers」,數據庫中列的名稱是「FunctionsConsistency」,而表單的id是「easytohard」。但是,我不確定是否可以在此JavaScript代碼中包含php(以星號標出)。我可以在我的javascript中包含php sql更新嗎?

<script type='text/javascript'> 
$(document).ready(function() { 
$('#easytohard').on('submit', function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     url : $(this).attr('action') || window.location.pathname, 
     type: "POST", 
     data: $(this).serialize(), 
     success: function (data) { 

******THIS IS THE PHP CODE********* 
    $stmt = $db->prepare("UPDATE answers SET FunctionsConsistency = 1 
         WHERE id = ? AND FunctionsConsistency = 0") or die($db->error); 
$stmt->bind_param("i", $id); 
$stmt->execute(); 
******************  

     }, 
    }); 
}); 
}); 
</script> 

謝謝!

回答

3

你不能像這樣混合JavaScript和PHP。

PHP應該在服務器端執行,而javascript意味着在客戶端執行。

你可以把PHP文件放到你的服務器上,然後用ajax或其他方法發送請求給它。

喜歡的東西:

<script type='text/javascript'> 
$(document).ready(function() { 
    $('#easytohard').on('submit', function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url : $('http://path/to/your/php/file/on/server'), 
      type: "POST", 
      data: {id: 'your desired id here'}, 
      success: function (data) { 
       // if it reach this line, it means script on the php file is executed 
      }, 
     }); 
    }); 
}); 
</script> 

而且你的PHP文件應該是您的服務器(路徑:http://path/to/your/php/file/on/server)上,含有適當include s到工作。

<?php 

$stmt = $db->prepare("UPDATE answers SET FunctionsConsistency = 1 
       WHERE id = ? AND FunctionsConsistency = 0") or die($db->error); 
$stmt->bind_param("i", $_POST['id']); 
$stmt->execute(); 

注意,您可以在php中使用$_POST訪問過帳參數。

還有幾件事情你應該考慮,例如當請求沒有到達服務器或者如果服務器無法執行php文件時...,但你明白了。

另外,請看thisthis。希望這可以幫助。

+0

謝謝!我會試一試。對於「你想要的ID在這裏」的部分,我假設我不能使用$ id = $ SESSION ['id'],因爲那將是php。我如何表明我想要與當前會話/用戶關聯的ID? – user3666954

+0

@ user3666954所以,您不需要放置任何東西,只需刪除參數即可。會話信息會自動發送,你可以在你的php文件中使用'$ _SESSION ['id']'而不會出現任何問題。 –

相關問題