如何设置 href?

5
我有一个按钮,按下后需要从外部PHP文件调用一个函数并在新页面中加载它。
当我在我的index.php页面上点击“SHOW”按钮时,它会显示保存在“mesaj”中的消息,但会在index.php页面上显示(这不是我想要的!)。
我想要实现的是,当我在我的index.php页面上点击“SHOW”按钮时,它会在另一个名为content.php的PHP页面中显示消息内容。我想设置href。
index.php
<input type = "button" class="btn btn-primary" id = "show" onClick = "show()" value = "SHOW"/>

functions.php

function show()
{

    database();

    $sql = "SELECT title FROM `Articles`";

    $titleSql = mysql_query( $sql ) or die("Could not select articles:");

    $html = '<html><body><div class="container"><h2>Basic List Group</h2><ul class="list-group">';

    while ($title = mysql_fetch_array($titleSql)) {
        $html .= '<li class="list-group-item">'.$title["title"].'</li>';
    }

    $html .= '</ul></div></body></html>';

    echo $html;
    //die(json_encode(array("mesaj" => "Entered data successfully ")));

}

function.js

function show(){
        var n = $('#show').val()
        $.post("functions.php", {show:n}).done(function(mesaj){
            //$(document).html(mesaj);
            document.write(mesaj);
        });
}

“我想在我的index.php中设置href,你是什么意思?” - Amar Kamthe
@amar 如果我表达清楚的话 :D <a href="somelink url">alert(mesaj)</a> - Lulu
1个回答

1

在您的情况下,显然没有理由从PHP转到JS。如果需要加载后更改DOM,则可以使用JS $.post。您只需执行以下操作:

<a href="function.php" class="btn btn-primary" id="show"/>SHOW</a>

这可以在不经过 JS 的情况下运行。
如果您想使用 BUTTON 并通过 JS 进行操作,则需要执行以下步骤:
<input type="button" class="btn btn-primary" id="show" value="SHOW"/>

jQuery:

$('#show').click(function(e){
    e.preventDefault();
    window.location.href = 'function.php';
});

纯JS:

document.getElementById("show").onclick = function(){
    window.location.href = 'function.php';
}

请注意,要小心使用<button>标签,如果它被用在表单(form)内并且在点击时会提交表单。这就是为什么需要使用e.preventDefault();的原因。

假设你在function.php中有多个函数,而你需要调用其中一个特定的函数,你可以这样做:

function.php

if(isset($_GET['fn1'])){
    function functionOne(){
      //do something
     }
}

if(isset($_GET['fn2'])){
    function functionTwo(){
       //do something else
    }
}

并这样调用它:
<a href="function.php?fn1" class="btn btn-primary" id="show"/>SHOW</a>

or

$('#show').click(function(e){
    e.preventDefault();
    window.location.href = 'function.php?fn1';
    //window.location.href = 'function.php?fn2';
});

谢谢,@Mr.Web!现在href被设置为“function.php”,但我如何实现动态编写php文件的需求?如果您能看到,“functions.php”文件中的“show()”函数是动态编写的,具体取决于我在数据库中输入了什么。 - Lulu
我在你的function.php中没有看到任何写作...... show()函数内未调用shown - Mr.Web
$html = '<html><body><div class="container"><h2>基本列表组</h2><ul class="list-group">';while ($title = mysql_fetch_array($titleSql)) { $html .= '<li class="list-group-item">'.$title["title"].'</li>'; }$html .= '</ul></div></body></html>';echo $html; - Lulu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接