好的,假设我有一个有效的数据库连接和表来插入一个名字和一个用相机拍摄的图像。当我尝试插入记录时,我已使用以下语句对其进行了测试。
function insertRecord(){
userName;
imagePath;
if(userName=='' || imagePath==''){insert the stuff}// this won't run the insert statement
if(userName!='' && imagePath!=''){insert the stuff} //this is giving me results but undefined
所以,我认为我说的是他们有某种非空的价值。然而,当我SELECT * FROM USERS时,我得到ID:1名称:undefined imagepath:undefined。我认为这不是范围问题,因为我已经完成了它应该没问题。它可能与我的html输入有关。目前我的html输入看起来像这样:
<input id="placeImage" type="image" onclick="getPhoto();" style="width:60px;height:60px" />
<p></p>
<input id="userName" type="text" placeholder="FirstName" onchange="getName();"> name<br>
<input id="saveProfile" type="button" value="Save" onClick="insertRecord(dbtx);"> <br>
如您所见,图像输入仅调用相机获取图片并将生成的路径传递给成功函数,我将其分配给全局变量imagePath(在insertRecord中使用)
function getPhoto() {
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality: 50,
destinationType: navigator.camera.DestinationType.FILE_URI,
sourceType: pictureSource
});
}
function onPhotoURISuccess(imageURI){
console.log('calling success function');
placeImage = document.getElementById('placeImage');
if(placeImage==''){
alert('Please take a photo');
}else{
placeImage.src = imageURI;
alert(placeImage.src);
placeImage.style.display = 'block';
imagePath=placeImage.src;
}
console.log(imageURI);
}
function onFail(message) {
alert('Failed because: ' + message);
}
同样,用我的名字输入我现在使用onchange =“getName();”调用此代码
function getName(){
userName= document.getElementById('userName').value;
if(userName==''){
alert('Please enter a name');
}
}
我无法看到为什么userName和imagePath在进入db时仍未定义的原因。我没有正确地给他们价值吗?我知道我在调用getPhoto();对于pic,但反过来调用onPhotoURISuccess(); (这可能是个问题?)我是否正确使用onchange。我应该对图像输入进行类似的测试吗?任何帮助或方向赞赏。
答案 0 :(得分:1)
我在你的输入中没有看到name
attr ..如果你发布了它..
<input id="placeImage" name="imagePath" type="image" onclick="getPhoto();" style="width:60px;height:60px" />
<p></p>
<input id="userName" type="text" name="userName" placeholder="FirstName" onchange="getName();"> name<br>
<input id="saveProfile" type="button" value="Save" onClick="insertRecord(dbtx);"> <br>