我很难理解如何让jQuery.ajax将失败的MySQL UPDATE查询解释为错误.这是我的代码:
jQuery的:
$.ajax({
type:'POST',
url:'/ajax/registration.php',
data:{formData: formData},
success:function(data){eformDef.forms.registration.success(data);},
error:function(data){eformDef.forms.registration.success(data);}
});
Run Code Online (Sandbox Code Playgroud)
PHP
$data = $_POST['formData'];
$firstName = mysql_real_escape_string($data['first name']);
$lastName = mysql_real_escape_string($data['last name']);
$email = mysql_real_escape_string($data['email address']);
$password = mysql_real_escape_string($data['password']);
mysql_query("INSERT INTO users (first_name, last_name, email, password) VALUES ('$firstName', '$lastName', '$email', '$password')") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
无论如何 - 即使我使mysql_query语法无效 - ajax调用总是将响应解释为成功.我假设这是因为mysql_error()作为响应被发送回来,ajax调用将其作为字符串读取,并且显然认为这是成功的.当然我可以通过检查$ .ajax成功函数中的响应字符串来解决这个问题,但这看起来有点不合逻辑.如果我可以使用$ .ajax dataType选项测试数据类型,这不是问题.但是使用像上面那样的UPDATE查询,我总是得到一个字符串作为响应.
由于有一种解决方法(检查成功函数中的字符串),这不是一个关键问题.但如果有更正确的方法,我会更喜欢这样做.
有时候我在"界面"构建器中设置它们,它们会在我的应用程序中显示出来.其他时候,它们会以不同的方式显示或根本不显示.我似乎无法很好地理解为什么会这样.
例如,我在模态视图中呈现导航控制器.但是在Interface Builder中,当我尝试设置导航栏的标题时,它会被忽略.我知道导航栏标题的名称来自其显示的视图的标题,因此您实际上需要在该子视图而不是导航栏上设置标题.在考虑代码时这很有意义,但IB允许你看似设置标题这一事实非常令人困惑.它为什么会让你?只是为了使它在IB中看起来"正确",即使这不能反映应用程序的真实状态?
类似的示例是将UIBarButtonItem添加到导航栏.再次,在IB中我可以添加它,设置它的标题,样式等.但它没有显示出来.我必须在根视图控制器上设置导航控制器初始化的.navigationItem.leftBarButtonItem属性.
所以据我所知,上面的两件事(标题和按钮)都不能通过IB实现,但IB肯定会让它看起来像它们.最后,这使得甚至没有导航控制器的XIB文件也毫无意义.
我错过了什么吗?
据我所知,ontouchmove
移动Safari中触发的事件仅包含触摸开始的元素的信息.例如,假设我将手指放在元素上.firstElement
,然后将其拖过页面直到它结束.secondElement
.我已经检查了事件对象的所有属性,但我似乎只能找到引用.firstElement
.
有没有办法检测ontouchmove
用户手指当前正在触摸的元素?
我正在阅读Apress书中的Pro Core Data,它说如下:
...远程数据的本地缓存可以受益于内存中的持久存储.
我没有看到如何缓存内存持久性存储中的数据比仅仅让应用程序的根视图控制器挂起数据更有用.有人可以更全面地阐述内存持久性存储可能有用的情况吗?
这是通过Ajax发送的.这是JS:
$.ajax({
url: objCommon.ajax,
type: 'POST',
data: {type:'feedback', msg:$('.commonsFeedbackDiv').text(), url:window.location.href},
success: function(data){
console.log(data);
if(data.search('ajaxError') === -1){
console.log('sent');
}else if(data.search('msg')){
alert('Please enter a message.');
}
}
});
Run Code Online (Sandbox Code Playgroud)
以及处理请求的PHP:
global $user;
echo $_POST['msg'];
echo $_POST['url'];
if(isset($_POST['msg']) && $_POST['msg'] !== ''){
mail('commons@example.com', 'Commons Feedback', 'url: ' + $_POST['url'] + $_POST['msg'], 'From: ' . $user->mail);
}else{
echo 'ajaxError - no msg';
}
Run Code Online (Sandbox Code Playgroud)
您可以在success()
回调函数中看到我正在将响应记录到控制台,并且此响应由echo
PHP代码开头附近的两个语句组成.最终在控制台中的字符串是正确的; 它包含消息和URL.但是,我收到的实际电子邮件只包含内容中的数字0.
知道为什么吗?
我正在尝试运行 cURL 命令以通过 安装 RVM 和 ruby child_process.spawn
,但它总是出错:
let spawnProcess = spawn('\curl -sSL https://get.rvm.io | bash -s stable --ruby')
spawnProcess.stdout.on('data', data => {
console.log('DATA RECEIVED')
console.log(data)
})
spawnProcess.stdout.on('close', () => {
alert('done!')
})
spawnProcess.stderr.on('data', function(){
console.log('ON DATA')
console.log(arguments)
})
spawnProcess.on('error', error => {
console.log('ON ERROR')
console.log(JSON.stringify(error), error)
})
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
{"code":"ENOENT","errno":"ENOENT","syscall":"spawn curl -sSL https://get.rvm.io | bash -s stable --ruby","path":"curl -sSL https://get.rvm.io | bash -s stable --ruby","spawnargs":[]} Error: spawn curl -sSL https://get.rvm.io | bash -s stable --ruby ENOENT
at exports._errnoException (util.js:890:11) …
Run Code Online (Sandbox Code Playgroud) 考虑以下对象:
const obj = {a: 1, b: 2, c: 3, d: 4, e: 5}
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的语法来创建包含以下内容的新对象:
const obj2 = {a, b, d}
Run Code Online (Sandbox Code Playgroud)
我知道有下划线和lodash .pick()
,但我希望有一些我可能不知道的解构技巧.
我将使用JavaScript中的示例来帮助澄清我的问题.我们假设我有以下对象:
sports = {
soccer: {...},
basketball: {...},
baseball: {...}
}
Run Code Online (Sandbox Code Playgroud)
如果在我的脚本中的某个时刻我有一个变量sportString,它只是一个字符串,我可以通过以下方式动态调用其中一个运动对象:
sports[sportString];
Run Code Online (Sandbox Code Playgroud)
这使我不必使用一堆嵌套的if语句,测试字符串的值,例如:
if(sportString === 'soccer'){
sports.soccer;
}else if(sportString === 'basketball){....
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是如果sportString是一个NSString对象,如何在Objective-C中完成类似于sports [sportString]的东西呢?
我希望用户能够通过AJAX提交节点和评论.我还想对节点和注释表单做一些相当广泛的自定义.
我花时间浏览了Drupal 7的Form API和Ajax框架的文档和代码示例,但我发现它非常复杂.因此,我只想在HTML中创建自己的表单,并使用我自己的JavaScript代码通过Ajax提交它.我还将设置一个特定的URL来处理这些Ajax请求,这些URL将最终调用node_save()
或comment_save()
在适当的时候调用.
与通过Form API和Ajax框架相比,这样做有什么缺点?我不是在为社区做贡献而创建模块.一切都只适用于我自己的网站.
我一直在学习Ruby on Rails并且已成功使用命令行查看和编辑数据库(使用mysql
命令).
我现在正在使用MAMP并尝试安装Wordpress.它似乎正在使用"不同的"mysql.即,我通过命令行创建的数据库在MAMP的phpmyadmin中无法查看,反之亦然.
如何通过命令行访问MAMP的mysql?我猜我需要在使用mysql
命令登录时指定主机,但我不确定要放在那里.由于phpmyadmin存在于localhost:8888/phpMyAdmin
,我尝试使用mysql -h localhost:8888 -u root -p
,但这不起作用(错误:) Unknown MySQL server host 'localhost:8888'
.
ios ×3
ajax ×2
cocoa-touch ×2
javascript ×2
php ×2
cocoa ×1
curl ×1
dom-events ×1
drupal ×1
drupal-7 ×1
drupal-ajax ×1
drupal-forms ×1
ecmascript-6 ×1
iphone ×1
jquery ×1
mamp ×1
mysql ×1
node.js ×1
objective-c ×1
response ×1
shell ×1
spawn ×1
touch ×1