Php 将JavaScript确认值传递给Codeigniter控制器

Php 将JavaScript确认值传递给Codeigniter控制器,php,mysql,codeigniter,Php,Mysql,Codeigniter,我不熟悉JavaScript和Codeigniter。我想知道如何将JavaScript确认(是/否)传递给Codeigniter控制器 例如,我有一个链接 更新所有记录。 (如何链接?) 一旦用户单击它,就会弹出一条消息,上面写着你确定吗?。如果是,则它将被传递给控制器/模型,并进行更新,如果否,则它将保持在同一页面上 或者有人可以教我其他方法吗?您可以使用以下链接提交表格: <a href="javascript:{}" onclick="formanName.submit();"&g

我不熟悉JavaScript和Codeigniter。我想知道如何将JavaScript确认(是/否)传递给Codeigniter控制器

例如,我有一个链接

更新所有记录
。 (如何链接?)

一旦用户单击它,就会弹出一条消息,上面写着
你确定吗?
。如果是,则它将被传递给控制器/模型,并进行更新,如果否,则它将保持在同一页面上


或者有人可以教我其他方法吗?

您可以使用以下链接提交表格:

<a href="javascript:{}" onclick="formanName.submit();"> linktext </a>

要在发送前请求确认,您可以尝试:

<a href="javascript:{}" onclick="if(confirm('Message?')) { formName.submit();}"> linktext </a>


其中
formName
是要提交的表单的名称。我希望这有帮助。

你用什么?单选按钮?如果是,只需在单选按钮标记上方添加表单标记即可

这是一个例子

<form name = "yesno" action = "<?php site_url('check/yesorno') ?>" method = "post">
    <input type = "radio" name = "yesorno" value = "yes" onclick = "this.form.submit()">Yes
    <br>
    <input type = "radio" name = "yesorno" value = "no" onclick = "this.form.submit">No
</form>

/*Note:
Form name = name of form
action = destionation url (site_url(yourController/yourFunction))
method = post/get
onclick = javascript event (will execute the code when user click)
this.form.submit() = javascript dom, means submit the your form when specified event executed*/

这是我能找到的最简单的解决方案,你可以在

我使用jQuery简化事情:)

总的来说。我使用
preventDefault()
防止浏览器立即更改页面。之后,显示一个
确认
框。如果用户单击
yes
(同意),则将浏览器更改为单击的
a
元素的
href
中的url


这里最重要的是jQuery和所有需要确认的链接的类名(在本演示中,我使用
need confirm
)。

非常感谢您为回答我的问题所做的一切努力,我从您那里得到了一个想法。 这是我的解决办法

我的链接是

id=“my_link”href=“controller/function”onclick=“return confirm('you sure?');”>单击此处

它工作正常,转到控制器/功能并进行更新


谢谢大家

请详细说明一下表单名称,因为我没有表单名称。这只是一个链接。你可以创建一个提交链接的小表单。但这取决于你的代码。如果没有看到任何代码示例,很难判断。-但这是错误的,因为它只是转到bets/default/它没有转到controller进行更新。而不是确认,问题出在您的
/bets/default/
上。我对它越来越不熟悉。在这种情况下是否可以不使用ajax或javascript?我对javascript还不太熟悉,我不知道ajaxI添加了一个简单的解决方案,您可以尝试:)感谢Bobrovsky的编辑,非常感谢它不,这只是链接,当用户单击链接时,会显示弹出消息(确认消息javascript),如果是,更新会在控制器上工作的是的,我在下面查看了你的代码。用户单击链接并打开弹出窗口后,似乎会显示一条带有链接的消息。如果用户单击弹出窗口中的链接,则表示“是”。我说得对吗?如果是这样,最简单的方法就是使用ajax。我知道你是javascript新手。但我认为,学习ajax并不像你想象的那么难。实际上ajax是javascript的子版本:我已经更新了我的答案。如果您仍然不理解代码,请不要担心询问;)是的,非常陌生。有没有可能在这种情况下不使用javascript或ajax?嘿,我有一个没有ajax的想法。工作流程是:当用户单击第一个链接时,弹出窗口打开消息和链接。当用户单击弹出窗口中的链接时,它会将用户重定向到控制器,您可以在控制器中更新数据,只需将用户重定向到目标。怎么样?它更简单,对吗?$(document).ready(function(){$('a.need-confirm')。单击(function(ev){ev.preventDefault();if(confirm(把你的问题放在这里!)){document.location=$(this.attr(“href”);}};});我如何将链接放到我的控制器中您将链接正常放入
a
元素的
href
//first->create the object
//for chrome, firefox, etc
if(window.XMLHttpRequest)
{
   xmlhttp = new XMLHttpRequest();
}
//fro ie, etc
else
{
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

    //to get response from php
xmlhttp.onreadystatechange = function()
{
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
    {
    //your code here
    }
}

    //open connection
    xmlhttp.open("GET","../project_php/login.php",true);
xmlhttp.send();

/*Note:
  GET -> method
  2nd paramater(../project_php/login.php) -> destination url
  3rd parameter -> true or false (use true!)

  on "your code here" comment, add your code if response from php successfully received.
*/