當我在獲取輸入值時嘗試訪問ajax外部的對象屬性時,它返回正確的值。但是當我嘗試在成功函數內部記錄並追加該值時,它將返回undefined。我該如何解決這類問題?看來這個對象是本地的,不能被ajax訪問?以下是我的代碼。使用Ajax打印對象屬性時未定義的結果Jquery
$('#add-order').on('click',function(){
//create an object for orders
var order = {
name : $('#name').val(),
drink : $('#drink').val()
};
$.ajax({
url : 'api/orders.json',
type : 'POST',
data : order,
dataType : 'json',
success : function(newOrder){
console.log(newOrder.name);
$('#orders').append('<li>' + newOrder.name + ' : ' + newOrder.drink + '</li>');
},
error: function(){
console.log('error connecting');
}
});
});
這裏的index.html的
<h4>Add a Coffee Order</h4>
<ul id="orders">
</ul>
<p><input type="text" id="name"></p>
<p><input type="text" id="drink"></p>
<button type="submit" id="add-order">Add</button>
因爲我需要我用PHP的服務器端語言。但是我無法使用JSON.stringify方法編寫來自ajax的數據。
<?php
if (isset($_POST['submit'])) {
$orders = $_POST['data'];
$orderFile = fopen('api/orders.json', 'w');
fwrite($orderFile, $orders);
fclose($orderFile);
}
我也更新了我的top.When我硬編碼任何字符串使用fwrite($ orderFile,「我的訂單」),它會在orders.json寫然而,當我用它不工作的$命令代碼。我在這裏錯過了什麼嗎?
啊得到了它。是的,這就是爲什麼當我登錄newOrder時,它會返回數據。非常感謝。但是最後一個問題是,我在輸入中輸入的值是否會寫入order.json文件?如果不是,我會怎麼做呢? –
輸入在哪裏? – void
@JayGorio:好吧,它可能被寫入json文件。這就是服務器需要做的事情,您可以在客戶端完成的任務是通過POST請求將數據傳遞到服務器。 – Bergi