Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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 使用jquery和Ajax无法从选择框上的提交按钮获取任何输出_Javascript_Php_Jquery_Ajax_Select - Fatal编程技术网

Javascript 使用jquery和Ajax无法从选择框上的提交按钮获取任何输出

Javascript 使用jquery和Ajax无法从选择框上的提交按钮获取任何输出,javascript,php,jquery,ajax,select,Javascript,Php,Jquery,Ajax,Select,您好,我有一个选择框,我想从中选择过去4,6周的新闻,并根据提交按钮相应地显示新闻。我使用以下代码创建jquery、ajax并尝试将值传递给php。但我不知道什么时候我从选择框中选择并单击提交按钮,什么都不会显示。我想我犯了严重的错误,无法与php和jquery、ajax进行正确通信。这是JSFIDLE:。谢谢 这是我的密码: dashboard.php if($param['aktion'] == 'get-widget-news-edit') { if(isset($_POST['s

您好,我有一个选择框,我想从中选择过去4,6周的新闻,并根据提交按钮相应地显示新闻。我使用以下代码创建jquery、ajax并尝试将值传递给php。但我不知道什么时候我从选择框中选择并单击提交按钮,什么都不会显示。我想我犯了严重的错误,无法与php和jquery、ajax进行正确通信。这是JSFIDLE:。谢谢 这是我的密码:

dashboard.php

if($param['aktion'] == 'get-widget-news-edit')
{
    if(isset($_POST['saveId']))
   {

      if(($_POST['news'])==4){

      echo "You have selected news for last 4 weeks";

}

 if(($_POST['news'])==6){

     echo "You have selected news for last 6 weeks";
}
}

    $html = '<table width="538" cellspacing="0" cellpadding="0" border="0" >
            <tr>
                <td>
                <div>'.CreateRegister($page['register-news']).'</div>
                '.CreateMessage().'
                <div class="cont-liste-verlauf register">
                    <div class="tab-content">
                        <div id="tab1" class="tab" style="display:block">
                            <table id="news">

                            <form name="UserInformationForm" method="POST" >

                        <select name="news">
                                <option value="4" '. (($_POST['news']=="4")  ?  "selected=selected" : "" ) .'>Show news from last 4 weeks</option>
                                <option value="6" '. (($_POST['news']=="6") ?  "selected=selected" : "") .'>Show news from last 6 weeks</option>

                        </select>
                        <br/><br/>
                    <input type="Submit" name="saveId" id="saveId">

                            </form> 
                            </table>
                        </div>
                    </div>
            </td>
        </tr>
    </table>';

    $return = array(
    'status' => 1,
    'html'  => $html
);

echo json_encode($return);
die();

您没有从php发送json,因此请将数据类型更改为html并附加原始数据:

    dataType : 'html',
    cache: false,
    data: {'aktion' : 'get-widget-news-edit'},
    success: function(data){
        $('#news').html(data);

    }
或者将php更改为发送json:

if(($_POST['news'])==4){
    header('Content-Type: application/json');
    echo json_encode(array('html'=>'You have selected news for last 4 weeks'));
    exit();

您好,请检查更新的问题,我已经更改了json格式,但仍然没有给我输出。实际上,这不是我代码中的数据类型错误,实际错误我认为我无法传递id。因为我使用json数据类型编写了其他代码,它们运行良好。@user3702602我没有看到您的更新中有任何更改,您是否尝试过我的解决方案?您做了哪些更改?我在我的问题中更新了哪些更改,请在dashboard.php的底部检查,我返回数组并以js格式回音..@user3702602为什么返回表单html?当然,你想按照我的回答返回消息吗?嗨,但它也尝试了你的回答方式,但它没有返回任何内容,并给我一个错误,说来自ajax的数据为空……你没有给出
$\u POST['saveId']
$\u POST['news']
。检查您是否可以告诉我如何在我的代码中使用它,因为我不熟悉使用序列化表单选项…只需
data:{$(“form”).serialize()}
,然后您就可以使用POST在PHP文件中检索表单的所有数据。因为我猜现在你检索到的是空数据。嗨,谢谢,我也这么做了,但还是没有显示任何内容。我非常接近结果,但犯了一个小错误。我已经用提琴更新了你的答案,你能检查一下吗:我想我们现在甚至不需要点击按钮就可以根据你的答案得到结果,如果它有效的话
if(($_POST['news'])==4){
    header('Content-Type: application/json');
    echo json_encode(array('html'=>'You have selected news for last 4 weeks'));
    exit();