Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 ajaxpost之前的jQuery对话框_Javascript_Php_Jquery_Ajax_Dialog - Fatal编程技术网

Javascript ajaxpost之前的jQuery对话框

Javascript ajaxpost之前的jQuery对话框,javascript,php,jquery,ajax,dialog,Javascript,Php,Jquery,Ajax,Dialog,我有一个表单和一个jQuery函数,如果用户更改html选择字段,就会触发该函数。该函数收集所需的所有信息,并通过ajax post发布到php脚本。 我想用一个新功能扩展这个函数:如果所选值等于预定义值,我想显示一个带有两个按钮的对话框。用户需要点击其中一个按钮,如果他点击了,新的信息将附加到帖子上。 一个简单的例子: 选择有3个选项: -柠檬 -香蕉 -苹果 如果用户选择lemon或banana,脚本将信息发送到服务器,而无需进一步操作。但如果他选择苹果,我需要一个额外的对话框,因为我想问他

我有一个表单和一个jQuery函数,如果用户更改html选择字段,就会触发该函数。该函数收集所需的所有信息,并通过ajax post发布到php脚本。 我想用一个新功能扩展这个函数:如果所选值等于预定义值,我想显示一个带有两个按钮的对话框。用户需要点击其中一个按钮,如果他点击了,新的信息将附加到帖子上。 一个简单的例子: 选择有3个选项: -柠檬 -香蕉 -苹果

如果用户选择lemon或banana,脚本将信息发送到服务器,而无需进一步操作。但如果他选择苹果,我需要一个额外的对话框,因为我想问他是需要一个红色的还是绿色的。它需要附加到我要发送到服务器的信息中

你们能帮我吗,伙计们,我该怎么做

我只有第一部分:

$('select.myList').change( function()
{
    var e = $(this)
    var val = $(this).val();
    var id = $(this).attr('data-id')

    var url = 'index.php?process'
    $.ajax({
        type: "POST",
        url: url,
        data: { id: id, val: val },
        success: function(data){
            var o = $.parseJSON(data);
            if( o.error )
            {
                console.log('error:' + o.message);
            } else
            {
                console.log('success:' + o.message);
            }

            return false;
        }
        })

    return false
})

首先,我要说的是,你应该非常小心你的变量名。如果可以避免的话,千万不要将
e
用作变量。我还将更改
id
val

在任何情况下,您都应该能够在ajax:中使用
beforeSend
属性,因此假设“apple”是元素的
val

$.ajax({
    type: "POST",
    url: url,
    data: { id: id, val: val },
    beforeSend: function() { 
        if (val === 'Apple') { 
            //do stuff 
        }
    },
    // rest of ajax call 
} 

你能发布一些你尝试过的代码吗?我只有第一部分,更新了问题很好,我以前没有注意到在API中发送。你能帮我做一下对话吗/我想我会问一个明显的问题——与其在发送之前尝试操作数据,还有什么原因不能将“苹果绿”和“苹果红”添加到选择列表中?在选择更改时提交表单,然后停下来询问更多信息,这感觉有点笨拙。最终,我认为我建议的解决方案是将值修改为其中之一,因此,如果这是您需要的信息,为什么不从它们开始呢?这只是一个简单的例子,真正的东西要复杂得多:)我明白了-我想问题仍然存在,为什么不首先将选项添加到选择列表中,或者展开表单,单击按钮提交,并添加一个字段,如果用户选择apple,该字段将显示?如果你能用一个真实的例子建立一个代码笔,那将是非常有帮助的。