我有一个index.html文件,它包含一个触发ajax请求的按钮并启动一个php文件.php文件将数据发送到服务器。问题是我不知道如何调试php文件,因为echo似乎不起作用(我可能做错了)。我只是想将各种变量回显到html文件中的div,看看它们在程序的不同点上是什么。如果有更好的方法,请发布。谢谢。
PHP
<?php
require_once 'connect.php';
?>
<?php
// Create table
$patchData = $_POST[mydata];
$encoded = json_encode($patchData);
$sql="INSERT INTO patches (patch_name)
VALUES ('{$encoded}')";
// Execute query
if (mysqli_query($con,$sql))
{
echo "Table updated successfully";
}
else
{
echo "Error updating table: " . mysqli_error($con);
}
?>
的Javascript
var patch = {
"patch_name": "",
"sound_type": {
"synths": [ // each 'synth name' is a draggable div that plays an oscillator
// etc
],
"samplers": [
// same as synth only for divs that trigger audio files instead of oscillators
]
},
}
// START Save DOM nodes
function save(){
instrumentName = $('#instrument-name-form').val();
patch.sound_type.synths.length = 0;
patch.sound_type.samplers.length = 0;
$(".synth").each(function(){
var temp = $( "#" + this.id );
var pos = $(temp).position();
console.log(this.id);
patch.sound_type.synths.push({'synth_name':this.id,'xpos':pos.left,'ypos':pos.top});
});
$('.patch-list').html(patch.name);
patch.patch_name = instrumentName ;
console.log(patch);
$.ajax({
type: 'POST',
url: 'php/add.php',
data: {mydata: patch},
success: function(){
console.log('yay');
}
});
};
$('#save-synths').click(function(){
save();
})
答案 0 :(得分:0)
两种方式。 首先,Internet Explorer javascript调试模式。(或者firebug更好) 其次,将index.html重命名为index.php,然后打开 标签在ajax和breakpoint之前回显页面,然后调试php { 如果你不知道如何调试PHP 请在php.ini文件中启用xdebug控件 使用zend studio或eclipse或netbeans for php ide,php风暴也适用于它。 }
答案 1 :(得分:0)
首先:将此行$patchData = $_POST[mydata];
更改为$patchData = $_POST['mydata'];
秒:patch
对象结构错误,无法发送到服务器,因此您必须对其进行编辑
答案 2 :(得分:0)
或者您也可以使用基于文件的php变量记录。