Javascript JS提示符+;PHP
我有下面的js代码,除非用户输入值,否则将重新加载页面Javascript JS提示符+;PHP,javascript,php,Javascript,Php,我有下面的js代码,除非用户输入值,否则将重新加载页面 <script type="text/javascript"> var name = prompt("Please enter your name:"); if (name === "") { location.reload(); } else if (name) { } else { location.reload(); } </script> var name=prompt(“请输入您的姓名:
<script type="text/javascript">
var name = prompt("Please enter your name:");
if (name === "") {
location.reload();
} else if (name) {
} else {
location.reload();
}
</script>
var name=prompt(“请输入您的姓名:”);
如果(名称==“”){
location.reload();
}否则,如果(姓名){
}否则{
location.reload();
}
我想使用它将结果传递到PHP变量中。我知道这是不可能的,但这样的功能是有效的:
<?php
//prompt function
function prompt($prompt_msg){
echo("<script type='text/javascript'> var answer = prompt('".$prompt_msg."'); </script>");
$answer = "<script type='text/javascript'> document.write(answer); </script>";
return($answer);
}
//program
$prompt_msg = "Please type your name.";
$name = prompt($prompt_msg);
$output_msg = "Hello there ".$name."!";
echo($output_msg);
?>
我不能评论,所以我想答案就足够了
据我所知,如果用户按“取消”,则无法直接获取。但是可以使用empty()检查结果是否为空
function prompt($prompt_msg){
echo("<script type='text/javascript'> var answer = prompt('".$prompt_msg."'); </script>");
$answer = "<script type='text/javascript'> document.write(answer); </script>";
// Checks if $answer is empty/spaces
if (!empty($answer)) {
// Not empty, return
return($answer);
} else {
// $answer is empty, we need to reprompt them.
// Reprompt them, etc
}
}
函数提示($prompt\u msg){
echo(“var answer=prompt(“$prompt_msg.”);”;
$answer=“document.write(answer);”;
//检查$answer是否为空/空格
如果(!空($answer)){
//不为空,返回
返回($应答);
}否则{
//$answer是空的,我们需要重新编译它们。
//责备他们等
}
}
这是我的第一个答案,所以我希望它反映了正确的回答格式。我也希望我正确地理解了你。我很抱歉不能就此发表评论
PHP Empty()
根据下面的评论,这里是一个修改后的设置。
new_file.php(创建文件)
别把自己搞糊涂了。只需将该值作为URL参数进行路径设置,并在服务器端进行检查
<?php if (!isset($_GET['name'])): ?>
<script type="text/javascript">
var loc = location.href;
var name = prompt("Please enter your name:","");
if (name == "" || name =='null') {
location.reload();
} else {
location.href = loc+"?name="+name;
}
</script>
<?php else: ?>
<?php echo strip_tags($_GET['name']); ?>
<?php endif; ?>
var loc=location.href;
var name=prompt(“请输入您的姓名:”,“”);
如果(名称==“”| |名称=='null'){
location.reload();
}否则{
location.href=loc+“?name=“+name;
}
然而为了避免意外结果,在这个解决方案中,我假设您的URL没有参数,因此,在中,如果
:location.href=loc+”?name=“+name代码>但如果有参数,可以将其设置为location.href=loc+“&name=“+name代码>谢谢。但我也需要检查空的大小写,就像我的javascript一样。还有,你会建议如何谴责?回显“location.reload();”;显然,如果考虑使用递归,也不会起作用……(返回提示符($prompt_msg);)您还需要检查空大小写是什么意思?这将检查PHP变量$answer是否为空或空格等。我在答案中添加了注释,以使其更易于理解。我完全理解,我只是说在那里重新提示是不起作用的。你建议用什么来做这个重做?我尝试了echo+javascript代码(参见我的第一个回复)和prompt()函数的递归调用。我刚测试过。如果用户未输入任何内容,则不会发生任何其他情况,而我需要的是重新加载页面/调用提示功能等。如果我的问题是哑的,我很抱歉,我仍在学习。希望你能帮助我,这一切都比它需要的更复杂。我建议您尝试使用jQuery(如果可以的话)将PHP与UI连接起来。这是我目前正在进行的W3Schools演示,但是如果jQuery与您一起工作,我可以修改我的答案以包含jQuery。本质上,在页面加载时,提示用户输入所需内容,然后验证它是否为空,然后发布到PHP页面。我不确定应用程序是什么,所以我不确定这是否适用于您。谢谢!几乎解决方案,我一直在寻找,但空版本仍然是输出(情况下,用户按下取消)@JessicaAnderson非常容易,在签出答案的编辑。
<script>
$(document).ready(function(){
// Prompt for username
var input_name = prompt("Please enter your name:");
// If the username was entered
if (input_name != null) {
// Post to new_file.php
$.post("new_file.php", {name: input_name }, function(status){
alert(status);
});
}
});
</script>
<?php if (!isset($_GET['name'])): ?>
<script type="text/javascript">
var loc = location.href;
var name = prompt("Please enter your name:","");
if (name == "" || name =='null') {
location.reload();
} else {
location.href = loc+"?name="+name;
}
</script>
<?php else: ?>
<?php echo strip_tags($_GET['name']); ?>
<?php endif; ?>