Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS提示符+;PHP_Javascript_Php - Fatal编程技术网

Javascript JS提示符+;PHP

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(“请输入您的姓名:

我有下面的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(“请输入您的姓名:”);
如果(名称==“”){
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; ?>