我试图在另一个 if 语句中使用变量集,但它一直返回未定义。这是 PHP 代码:
if(isset($_POST['bookingTime'])){
$bookingTime = $_POST['bookingTime'];
$bookingDate = $_POST['theDate'];
$dbDateTime = $bookingDate." ".$bookingTime;
echo json_encode($dbDateTime);
exit;
}
if(isset($_POST['bookingPwd'])){
$pwd = $_POST['txtBookingPwd'];
//Get the $dbDateTime variable???
echo $pwd;
}
$dbDateTime 变量被设置为对 AJAX 请求的响应并返回到 jQuery,但我需要该变量用于数据库查询。如何在另一个 if 语句中使用该变量?我觉得我对 php 的理解缺少一些真正基本的东西。我试过全局变量,但没有运气。
更新
删除 exit 没有任何区别。 $dbDateTime 变量仍然没有显示在第二个 if 语句中。这是我运行来测试的 PHP 代码:
if(isset($_POST['bookingTime'])){
$bookingTime = $_POST['bookingTime'];
$bookingDate = $_POST['theDate'];
$dbDateTime = $bookingDate." ".$bookingTime;
// echo json_encode($dbDateTime);
// exit;
}
if(isset($_POST['bookingPwd'])){
$pwd = $_POST['txtBookingPwd'];
//Get the $dbDateTime variable???
echo $dbDateTime;
echo $pwd;
$booking->newBooking($dbDateTime, $pwd);
}
该变量是根据 AJAX 请求设置的,该请求具有从 HTML 表格中获取的时间值。然后打开一个模式供用户输入他/她的密码以在选定的时间预订法庭。我在想也许 PHP 没有存储值,因为变量是在不同的操作中设置的?
第二次更新
session 有效,但尝试通过下一个 AJAX 调用传递 $dbDateTime 的值。这是 jQuery 代码:
var bookingTime;
var dbDatetime;
$('.courtBook').click(function() {
// Find the row
var $row = $(this).closest('tr');
// Find the text
var bookingTime = $row.find('.courtTime').text()+":00";
var theDate = $('#theDate').text();
$.ajax({
url: 'index.php?page=booking',
type: 'POST',
dataType: 'json',
data: {'bookingTime': bookingTime, 'theDate': theDate},
success: function(data){
var dbDatetime = data;
alert(dbDatetime);
},
error: function(){
alert('Much wrong, such sad');
}
});
});
$('#btnBookingPwd').click(function(){
console.log(bookingTime);
console.log(dbDatetime);
});
在最后一次点击函数中,变量变为未定义。那么,这在 jQuery 中是如何工作的?
最佳答案
您的 HTML 页面和 PHP 脚本不交换有状态数据。
每次您的 AJAX 代码在 HTML 页面中运行时,都会对 PHP 脚本进行新的调用。每次调用 PHP 脚本时,变量都会根据代码以默认状态开始。如果您想在一个 AJAX 调用中使用一个变量到下一个,则必须在下次调用 PHP 脚本时发送它。
尝试将您为 dbDateTime 返回的值添加为后续 AJAX 调用的参数,我认为您会走上正确的道路。
更新
您的 AJAX 即将实现。尝试在此处删除 var:
success: function(data){
var dbDatetime = data;
alert(dbDatetime);
},
关于PHP 变量在后续 AJAX 调用中返回 "default",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445524/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
我正在编写一个gem,我必须在其中fork两个启动两个webrick服务器的进程。我想通过基类的类方法启动这个服务器,因为应该只有这两个服务器在运行,而不是多个。在运行时,我想调用这两个服务器上的一些方法来更改变量。我的问题是,我无法通过基类的类方法访问fork的实例变量。此外,我不能在我的基类中使用线程,因为在幕后我正在使用另一个不是线程安全的库。所以我必须将每个服务器派生到它自己的进程。我用类变量试过了,比如@@server。但是当我试图通过基类访问这个变量时,它是nil。我读到在Ruby中不可能在分支之间共享类变量,对吗?那么,还有其他解决办法吗?我考虑过使用单例,但我不确定这是
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案